2017-04-22 137 views
-1

所以我想要做的就是做出一個測驗,你選擇的答案與正確的圖片,必須點擊。我需要5個問題,但通過使用Select Case方法,你不能直接投射Picturebox1.click如何處理多個事件一次點擊多個PictureBoxes?

Question with multiple picture answers which after you click will pop messagebox.show function and move on to the next question 任何幫助將不勝感激!

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 
+1

我看到你鑄造'sender'參數圖片框,以確定哪些點擊爲PB。看起來不錯,然後你使用.Tag()屬性來做一些事情,究竟是什麼不工作?任何錯誤信息? –

+1

你的問題沒有意義,你已經處理了'Click'事件多個'PictureBox'控件,你甚至可以訪問被點擊的'PictureBox',所以與事件相關的任何事情都與你的問題完全無關。如果你現在想做一些具有'Tag'屬性的值那麼這就是你應該問的問題,在這種情況下,知道'標籤'可能具有什麼值以及你想要什麼是有幫助的爲每一個做。 – jmcilhinney

+0

評論只是爲了讓你通知大聲笑 – user7904580

回答

0
Private Sub control1_mouseclick1(sender As Object, e As EventArgs) Handles PictureBox2.Click, PictureBox3.Click, PictureBox1.Click, PictureBox4.Click 

    Select Case e 
     Case 1 
      If (PictureBox2.Click = True) Then 
       MessageBox.Show("CORRECT!") 
      Else 
       MessageBox.Show("INCORRECT!") 

      End If 
      quest2() 


    End Select 
End Sub 

您的權利,它可能沒有什麼意義。什麼我想要做的代碼正好是顯示,但PictureBox2.Click不能直接在這裏進行,我作爲初學者,我不知道自己能做到的正確程度。以前的代碼我試圖使用其他人在論壇上發現的建議,但是我不清楚如何正確使用它,所以我甚至都不打擾自己它。希望你瞭解它!

0

如果你想知道哪些圖片框被點擊,你可以這樣做:

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 
0

那麼這對我來說是有意義的,謝謝。但另一個問題發生.. 私人小組control1_mouseclick1(發送者爲對象,例如作爲EventArgs的)把手PictureBox2.Click,PictureBox3.Click,PictureBox1.Click,PictureBox4.Click 昏暗PB作爲圖片框= DirectCast(發件人,圖片框)

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 

因此,當我呼叫出選擇案例方法時,每個Case「number」沒有聲明,它顯示錯誤「Operator'='沒有爲類型System.EventArgs定義。和「整數」 在頂部,我有 「昏暗è作爲整數',這是我的選擇案例可變」