Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 了解单击了哪个picturebox_Vb.net - Fatal编程技术网

Vb.net 了解单击了哪个picturebox

Vb.net 了解单击了哪个picturebox,vb.net,Vb.net,在我当前的VBA项目中,我有几个PictureBox,当您单击其中一个时,它们将激活messagebox。有没有办法让我知道哪些图片框被点击了?我已经添加了我目前拥有的代码,该代码不允许我向sub传递任何信息,因此每个picturebox将激活完全相同的消息 AddHandler newPictureBox.Click, AddressOf pic_Click Public Sub pic_Click() MsgBox("test") End Sub 您可以向每个picturebox添

在我当前的VBA项目中,我有几个PictureBox,当您单击其中一个时,它们将激活messagebox。有没有办法让我知道哪些图片框被点击了?我已经添加了我目前拥有的代码,该代码不允许我向sub传递任何信息,因此每个picturebox将激活完全相同的消息

AddHandler newPictureBox.Click, AddressOf pic_Click

Public Sub pic_Click()
   MsgBox("test")
End Sub

您可以向每个picturebox添加不同的处理程序,然后将其委托给另一个子系统,并传递有关单击哪个picturebox的信息。

您可以向每个picturebox添加不同的处理程序,然后再委托给另一个子系统,传递有关单击哪个picturebox的信息。

我在上面看到您正在使用VB2010。试试这个

AddHandler newPictureBox.Click, AddressOf pic_Click

Private Sub pic_Click(sender As Object, e As EventArgs)
    Dim thisPic As PictureBox = DirectCast(sender, PictureBox)
    'thisPIC now is a reference to the box, you can use .Name, etc. to get it's properties.
End Sub

我在上面看到您正在使用VB2010。试试这个

AddHandler newPictureBox.Click, AddressOf pic_Click

Private Sub pic_Click(sender As Object, e As EventArgs)
    Dim thisPic As PictureBox = DirectCast(sender, PictureBox)
    'thisPIC now is a reference to the box, you can use .Name, etc. to get it's properties.
End Sub

为什么不使用图片框。单击事件?
只要双击您的picturebox,它就会自动使用该事件。
然后,您可以将自己的代码添加到picturebox中。单击以使它们具有自己的功能。


如果这不是您想要的,请更清楚地描述您想要做的事情。

为什么不使用图片框。单击事件?
只要双击您的picturebox,它就会自动使用该事件。
然后,您可以将自己的代码添加到picturebox中。单击以使它们具有自己的功能。


如果这不是您想要的,请更清楚地描述您正在尝试做的事情。

您使用的是VBA吗?还是VB.NET?说明您使用的编程语言的正确标记…我使用Visual Basic 2010 express。事实上,我不知道它是哪一个,或者区别是什么。如果你使用VB 2010 Express,那么你使用的是VB.NET。VBA是Microsoft Office中使用的Visual Basic样式。如果使用Option Strict On,则会收到一条警告:“方法‘Public Sub pic_Click()’没有与委托‘委托子事件处理程序(作为对象的发件人,作为System.EventArgs的e)’兼容的签名”这会给您一个提示,表明发送方已传递给事件处理程序。您是否使用VBA?还是VB.NET?说明您使用的编程语言的正确标记…我使用Visual Basic 2010 express。事实上,我不知道它是哪一个,或者区别是什么。如果你使用VB 2010 Express,那么你使用的是VB.NET。VBA是Microsoft Office中使用的Visual Basic样式。如果使用Option Strict On,则会收到一条警告:“方法‘Public Sub pic_Click()’没有与委托‘委托子事件处理程序(作为对象的发件人,作为System.EventArgs的e)’兼容的签名”这会给你一个提示,发送者被传递给事件处理程序。这是非常不切实际的,因为这些PictureBox是根据文件夹中的某些文件创建的,所以我永远不知道会存在哪些PictureBox。@JanmeteKorteachternam我明白了。也许您可以使用lambda函数作为处理程序?请看这个问题:这是非常不切实际的,因为这些图片库是根据文件夹中的某些文件创建的,所以我永远不知道会存在哪些图片库。@JanmeteKorteachternam我明白了。也许您可以使用lambda函数作为处理程序?看看这个问题:directcast是我要找的东西。谢谢directcast是我要找的东西。谢谢