Vb.net 如何在Visual Basic中使右键单击与左键单击不同?

Vb.net 如何在Visual Basic中使右键单击与左键单击不同?,vb.net,Vb.net,这就像我第一次编程,所以请原谅我的新手问题。我正在为学校做一个项目,在这个项目中,如果有人左键点击图片,文本框中的值就会增加1。我已经做完了。但是,我想这样做,如果有人右键单击picturebox,它会从文本框中的值减去1。我不知道如何做到这一点,谷歌是没有帮助的原因 有没有一种非常简单的方法 没有“右键单击”事件,但在所有鼠标单击事件(单击、双击、向下、向上)中,您可以检查按下鼠标按钮的事件参数,然后使用if块确定执行哪一组逻辑。下面是一个例子: Private Sub Form1_Mouse

这就像我第一次编程,所以请原谅我的新手问题。我正在为学校做一个项目,在这个项目中,如果有人左键点击图片,文本框中的值就会增加1。我已经做完了。但是,我想这样做,如果有人右键单击picturebox,它会从文本框中的值减去1。我不知道如何做到这一点,谷歌是没有帮助的原因

有没有一种非常简单的方法

没有“右键单击”事件,但在所有鼠标单击事件(单击、双击、向下、向上)中,您可以检查按下鼠标按钮的事件参数,然后使用if块确定执行哪一组逻辑。下面是一个例子:

Private Sub Form1_MouseClick(sender As Object, e As MouseEventArgs) Handles Me.MouseClick
    If e.Button = Windows.Forms.MouseButtons.Left Then
        'logic to add 1 to textbox value
    ElseIf e.Button = Windows.Forms.MouseButtons.Right Then
        'logic to subtract 1 from textbox value
    End If
End Sub

针对特定的picturebox案例进行编辑

Private Sub PB_MouseClick(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseClick
    If e.Button = Windows.Forms.MouseButtons.Left Then
        'logic to add 1 to textbox value
    ElseIf e.Button = Windows.Forms.MouseButtons.Right Then
        'logic to subtract 1 from textbox value
    End If
End Sub

*请注意,该子程序的参数中有mouseeventarg,并处理PictureBox1的MouseClick事件……正如programmer所指出的,这些都很重要,但我有点困惑。如果我将If-then语句粘贴到“Private Sub PictureBox1\u Click”中,它会说“button”不是“EventArgs”的成员,“Forms”不是“Windows”的一部分。我必须将if-then语句放入图片的代码中单击,对吗?您需要使用
鼠标单击
而不是
单击
来访问
e.按钮
。您可以看到soohoonigan正在使用此事件,所以我是否应该将其从PictureBox1\u单击更改为“PictureBox1.MouseClick”?而且,即使我逐字粘贴他的代码,它仍然说窗体不是windows的一部分。你不应该需要
windows.forms
部分。只需
鼠标按钮。左
。但是,如果您更改
句柄PictureBox1。单击
句柄PictureBox1。鼠标单击
应该可以使用
私有子按钮1\u鼠标单击(作为对象的ByVal sender,作为系统的ByVal e.Windows.Forms.MouseEventArgs)句柄按钮1.MouseClick如果e.Button=Windows.Forms.MouseButtons.Right然后是MessageBox.Show(“单击了右键”)