vb.net 带有鼠标按钮事件和标签的奇怪动作
Posted
技术标签:
【中文标题】vb.net 带有鼠标按钮事件和标签的奇怪动作【英文标题】:vb.net weird action with mouse button event and label 【发布时间】:2016-02-29 16:16:38 【问题描述】:我有一个问题,label1.text
需要到达号码5
与mouse left button
点击label8
使,一个tool strip menu item
出现,但即使是5
它保持不可见除了点击一次与mouse right button
。这是代码:
Private Sub Label8_Click(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Label8.Click
If e.Button = Windows.Forms.MouseButtons.Left Then
Label1.Text = Val(Label1.Text) + 1
Else
If IsNumeric(Label1.Text = 5) Then
CustomizeModeToolStripMenuItem.Visible = True
End If
End If
End Sub
【问题讨论】:
您确定需要左键单击标签 8 来增加数字吗?您的代码另有说明。 哦,对不起,我刚刚编辑了,谢谢指正。Label1.Text = 5
是布尔表达式,而不是数字。所以使用 IsNumeric() 没有意义。在您学习语言时将 Option Strict On 放在源代码文件的顶部,以便编译器可以告诉您此类错误。..
【参考方案1】:
更新:
Private Sub Label8_Click(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Label8.Click
If e.Button = Windows.Forms.MouseButtons.Left And (Label1.Text <> "5") Then
Label1.Text = Val(Label1.Text) + 1
ElseIf (Label1.Text = "5") Then
CustomizeModeToolStripMenuItem.Visible = True
End If
End Sub
你遇到的问题是:
Else
If IsNumeric(Label1.Text = 5) Then
CustomizeModeToolStripMenuItem.Visible = True
End If
End If
您需要右键单击,因为if statement
完成了所有左键单击。我没有测试它,所以如果有什么不工作,说出来,我会修复它。
【讨论】:
它给了我一个 System.InvalidCastException 在 label8 的 sub 之后的第一行,在 if e.button 的代码行上,两个鼠标按钮的情况。 用这个 (Label1.Text "5") 替换这个 IsNumeric(Label1.Text 5) 是的,它可以工作,但是可以在我第五次点击标签 8 后使工具条菜单项自动出现? 试试 CustomizeModeToolStripMenuItem.ShowDropDown(); 非常感谢,现在它可以在第 6 次单击时工作,仅使用鼠标左键,但无论如何都可以。另一个问题,当鼠标右键单击并且不显示错误时,我如何告诉程序什么都不做?以上是关于vb.net 带有鼠标按钮事件和标签的奇怪动作的主要内容,如果未能解决你的问题,请参考以下文章