Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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,所以我想做的是做一个小测验,你可以选择正确图片的答案,然后点击。我需要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

所以我想做的是做一个小测验,你可以选择正确图片的答案,然后点击。我需要5个问题,但使用“选择案例”方法无法直接投射Picturebox1。单击

任何帮助都将不胜感激

 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