何度もこちらでアドバイスもらって問題を解決したんで、今度もよろしくお願いします。今Gridの上にチェックボックスを貼り付けて、単一選択でチェックにチェックをすれば選択されたラベル(イメージ画像が選択されたように見えるようイメージの下のラベル)に色をつけるんです。ソースは以下のとおりです。
Private Sub Check1_Click(Index As Integer)
Dim i As Integer
With MSFlexGrid1
.Visible = False
If Wk_index = 0 Then
Wk_index = Index
End If
If Wk_index = Index Then
For Wk_count = 1 To 16
If Wk_count < (D_MaxGazo - 16 * (P_Index - 1)) + 1 Then
If Index <> Wk_count Then
Check1(Wk_count).Value = False
.Row = Wk_count
.Col = 0
.CellBackColor = &HFFFFFF
.Col = 1
.CellBackColor = &HFFFFFF
If Check_Flg = 0 Then
Image1(Wk_count).Appearance = 0
Label4(Wk_count).BackColor = &HC0C0C0
End If
Else
If D_Check(Index + 16 * (P_Index - 1)) = 0 Then
If Check_No = 0 Then
Check_No = Index + 16 * (P_Index - 1)
D_Check(Check_No) = 1
.Row = Wk_count
.Col = 0
.CellBackColor = &H80FF80
.Col = 1
.CellBackColor = &H80FF80
ElseIf Check_No <> 0 Then
D_Check(Check_No) = 0
Check_No = Index + 16 * (P_Index - 1)
D_Check(Check_No) = 1
.Row = Wk_count
.Col = 0
.CellBackColor = &H80FF80
.Col = 1
.CellBackColor = &H80FF80
End If
Command4.Visible = True
ElseIf D_Check(Index + 16 * (P_Index - 1)) = 1 Then
Check1(Index).Value = 0
D_Check(Index + 16 * (P_Index - 1)) = 0
Check_No = 0
.Row = Index
.Col = 0
If .CellBackColor = &H80FF80 Then
.CellBackColor = &HFFFFFF
.Col = 1
.CellBackColor = &HFFFFFF
End If
Command4.Visible = False
End If
If Check_Flg = 0 Then
If Image1(Index).Appearance = 0 Then
Image1(Index).Appearance = 1
Label4(Index).BackColor = &HFF8080
Else
Image1(Index).Appearance = 0
Label4(Index).BackColor = &HC0C0C0
End If
End If
End If
End If
Next
Wk_index = 0
End If
Refresh
.Visible = True
End With
End Sub
問題はクリックしたらGrid上でフォーカスが走るのも見えるし、pictureboxでフォーカスが走るのも見えて、その上スピードもかなり遅いです。visibleの状態を入れ替えてもまったく効果がないです。どうぞよろしくお願いします。
ツイート | ![]() |