ラベルで MouseEnter と MousePressed を組み合わせたい。
Public Sub populateGrid()
lblTest.BackColor()
lblTest.BackColor = System.Drawing.Color.Red
gbWorkflow.Controls.Add(lblTest)
For j As Integer = 1 To 40
For i As Integer = 1 To 20
Dim L As New Label
L.Size = New Size(30, 30)
L.Text = "L:" + i.ToString + j.ToString
L.BackColor = Color.AliceBlue
Dim x, y As Integer
Dim loc As Point = gbWorkflow.Location
y = loc.Y * (i * 8) '- (gbWorkflow.Height + L.Size.Height) * i
x = loc.X * (j * 8)
L.Location = New Point(x, y)
gbWorkflow.Controls.Add(L)
AddHandler L.MouseEnter, AddressOf L_Enter
AddHandler L.MouseLeave, AddressOf L_Leave
Next
Next
End Sub
Private Sub L_Enter(ByVal sender As Object, ByVal e As System.EventArgs)
Dim TheLabel As Label = CType(sender, Label)
TheLabel.BackColor = Color.Red
End Sub
私の考えは、MouseDown でトリガーされ、ブール変数の値を変更するメソッドを作成することでした。次に、その変数を条件として使用して、変更をラベルに適用します。しかし、それはうまくいかないようです...
どうすればこれを最善の方法で達成できますか? それとも、まったく?
疑似コード: マウスがラベルに入るとき: 左マウスボタンが押された場合、ラベルを操作します
編集:マウスボタンがまだ押されていて、カーソルが複数のラベル上にドラッグされている場合にも機能する必要があります。左ボタンが押されている間にカーソルが交差するすべてのラベルを変更する必要があります。