我通过浏览数据库并为数据库中的每个条目添加一个带有相关标签的面板,将许多面板添加到FlowLayoutPanel。我需要能够编码在点击任何面板时发生的事情,但我无法弄清楚如何。
这是我用来生成面板的代码
For i As Integer = 0 To IDs.Count - 1
Dim testPanel As New Panel With
{
.Height = 50,
.Width = 140,
.BackColor = Blue,
.Name = "rPanel" + i.ToString
}
FlowLayoutPanel.Controls.Add(testPanel)
Next
答案 0 :(得分:1)
向MouseClick
事件添加事件处理程序,如下所示。
For i As Integer = 0 To IDs.Count - 1
Dim testPanel As New Panel With
{
.Height = 50,
.Width = 140,
.BackColor = Blue,
.Name = "rPanel" + i.ToString
}
AddHandler testPanel.MouseClick, AddressOf PanelMouseClick
FlowLayoutPanel.Controls.Add(testPanel)
Next
然后为该事件创建一个处理程序子。像..
Private Sub PanelMouseClick(sender As Object, e As MouseEventArgs)
MessageBox.Show("Mouse Clicked")
End Sub
AddHandler
允许您设置要处理的事件。 AddressOf
允许您设置希望调用处理所述事件的子组。如果您不确定子签名,则可以使用Visual Studio生成具有正确签名的任何已创建的子签名。
答案 1 :(得分:0)
在将面板添加到其他面板之前,向面板添加处理程序。
AddHandler testPanel.Click, AddressOf Method
FlowLayoutPanel.Controls.Add(testPanel)
添加一个将sender和eventargs作为值的新方法:
Private Sub Method(sender As Object, e As EventArgs)
'Your Code
End Sub