Vb.net 如何为多个PictureBox一次点击处理多个事件?
所以我想做的是做一个小测验,你可以选择正确图片的答案,然后点击。我需要5个问题,但使用“选择案例”方法无法直接投射Picturebox1。单击 任何帮助都将不胜感激Vb.net 如何为多个PictureBox一次点击处理多个事件?,vb.net,Vb.net,所以我想做的是做一个小测验,你可以选择正确图片的答案,然后点击。我需要5个问题,但使用“选择案例”方法无法直接投射Picturebox1。单击 任何帮助都将不胜感激 Private Sub control1_mouseclick1(sender As Object, e As EventArgs) Handles PictureBox2.Click, PictureBox3.Click, PictureBox1.Click, PictureBox4.Click Dim p As Pi
Private Sub control1_mouseclick1(sender As Object, e As EventArgs) Handles PictureBox2.Click, PictureBox3.Click, PictureBox1.Click, PictureBox4.Click
Dim p As PictureBox = CType(sender, PictureBox)
Select Case CInt(p.Tag)
Case 1
End Select
End Sub
你说得对,这可能没什么意义。。我想做的事情在代码中显示得很清楚,但是PictureBox2.Click不能直接在这里执行,而且作为初学者,我不知道如何正确地执行。。之前的代码我试图使用论坛上的其他人建议,但我不清楚如何正确使用它,所以我甚至没有为此烦恼。希望你知道 如果您想知道单击了哪个PictureBox,可以执行以下操作:
Private Sub control1_mouseclick1(sender As Object, e As EventArgs) Handles PictureBox2.Click, PictureBox3.Click, PictureBox1.Click, PictureBox4.Click
Dim pb As PictureBox = DirectCast(sender, PictureBox)
If pb Is PictureBox1 Then
ElseIf pb Is PictureBox2 Then
ElseIf pb Is PictureBox3 Then
ElseIf pb Is PictureBox4 Then
End If
End Sub
这对我来说很有意义,谢谢。但另一个问题出现了。。 私有子控件1_mouseclick1(发送者作为对象,e作为事件参数)处理PictureBox2。单击,PictureBox3。单击,PictureBox1。单击,PictureBox4。单击 Dim pb作为PictureBox=DirectCast(发送方,PictureBox) 因此,当我调用select case方法时,每个case“number”都没有声明,它显示错误“Operator'=”没有为System.EventArgs.和“Integer”类型定义 在顶端我有
“Dim e As Integer”是我的选择大小写变量“”我看到您正在将
sender
参数强制转换为PictureBox,以确定单击的PB。目前为止看起来不错。然后您正在使用.Tag()属性来执行某些操作。什么不起作用?有错误消息吗?您的问题没有意义。您已经在处理多个PictureBox
控件的Click
事件,甚至正在访问已单击的PictureBox
,因此与事件有关的任何内容都与您的问题完全无关选项。如果您现在想使用PictureBox
的标记
属性的值做一些事情,那么这就是您应该问的问题,在这种情况下,了解标记
可能具有哪些值以及您希望对每个值做些什么会很有帮助。注释只是为了给您一个通知lol
Private Sub control1_mouseclick1(sender As Object, e As EventArgs) Handles PictureBox2.Click, PictureBox3.Click, PictureBox1.Click, PictureBox4.Click
Dim pb As PictureBox = DirectCast(sender, PictureBox)
If pb Is PictureBox1 Then
ElseIf pb Is PictureBox2 Then
ElseIf pb Is PictureBox3 Then
ElseIf pb Is PictureBox4 Then
End If
End Sub
Select Case e
Case 1
If pb Is PictureBox2 Then
MessageBox.Show("Correct!")
Form1.scorepoint += 1
ElseIf pb Is PictureBox1 Then
MessageBox.Show("Incorrect!")
ElseIf pb Is PictureBox3 Then
MessageBox.Show("Incorrect!")
ElseIf pb Is PictureBox4 Then
MessageBox.Show("Incorrect!")
End If
question2()
Case 2
If pb Is PictureBox1 Then
MessageBox.Show("Correct!")
Form1.scorepoint += 1
ElseIf pb Is PictureBox2 Then
MessageBox.Show("Incorrect!")
ElseIf pb Is PictureBox3 Then
MessageBox.Show("Incorrect!")
ElseIf pb Is PictureBox4 Then
MessageBox.Show("Incorrect!")
End If
question3()
Case 3
If pb Is PictureBox4 Then
MessageBox.Show("Correct!")
Form1.scorepoint += 1
ElseIf pb Is PictureBox1 Then
MessageBox.Show("Incorrect!")
ElseIf pb Is PictureBox3 Then
MessageBox.Show("Incorrect!")
ElseIf pb Is PictureBox2 Then
MessageBox.Show("Incorrect!")
End If
question2()
Case 4
If pb Is PictureBox3 Then
MessageBox.Show("Correct!")
Form1.scorepoint += 1
ElseIf pb Is PictureBox1 Then
MessageBox.Show("Incorrect!")
ElseIf pb Is PictureBox2 Then
MessageBox.Show("Incorrect!")
ElseIf pb Is PictureBox4 Then
MessageBox.Show("Incorrect!")
End If
question5()
Case 5
If pb Is PictureBox3 Then
MessageBox.Show("Correct!")
Form1.scorepoint += 1
ElseIf pb Is PictureBox1 Then
MessageBox.Show("Incorrect!")
ElseIf pb Is PictureBox2 Then
MessageBox.Show("Incorrect!")
ElseIf pb Is PictureBox4 Then
MessageBox.Show("Incorrect!")
End If
End Select
Form1.trackscore()
End Sub