0

首先,大家好,我是 stackoverflow 的新手,也是编程的新手(1º 年)。我一直在搜索,但没有找到任何可以回答我的问题的东西,或者我只是为了让新手理解答案,所以如果它太简单了,我很抱歉,我看不到它!

/* 我的母语不是英语*/

这是我的问题,我正在制作一个带有 200 个图片框的 VB 表单,这些图片框必须在点击时更改或交互

我已经为它们制作了一个控制数组,如下所示:

Dim control(199) As PictureBox = Controles(control, 0)


Function Controles(ByRef control As Array, ByVal cont As Integer)

    For Each pic As PictureBox In Me.Controls

        control(cont) = pic
        cont += 1

    Next
    Return control
End Function

这应该将每个图片框关联到一个数组位置,我现在的问题是我如何将事件处理程序设置为在 control().click 上观看,所以无论您单击哪个框,onclick 事件都会触发。

我知道的唯一方法是手动为每个框创建一个点击处理程序。

希望我能找到一些答案

4

1 回答 1

3

使用该Addhandler语句,您可以将它们全部连接到同一个例程。然后将 sender 对象强制转换为与被点击的 PB 交互。OfType函数。

Private Sub LoadME() Handles Me.Load
 For Each pb As PictureBox In Me.Controls.OfType(Of PictureBox)()
  'add all PB click events to a event sub
  AddHandler pb.Click, AddressOf pb_Click
 Next
End Sub

Private Sub pb_Click(sender As Object, e As EventArgs)
  Dim pb = DirectCast(sender, PictureBox)
  'this is the PB that was clicked
End Sub
于 2015-06-02T18:14:01.387 回答