vb.net 带有鼠标按钮事件和标签的奇怪动作

Posted

技术标签:

【中文标题】vb.net 带有鼠标按钮事件和标签的奇怪动作【英文标题】:vb.net weird action with mouse button event and label 【发布时间】:2016-02-29 16:16:38 【问题描述】:

我有一个问题,label1.text 需要到达号码5mouse 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 带有鼠标按钮事件和标签的奇怪动作的主要内容,如果未能解决你的问题,请参考以下文章

php超链接标签事件都有哪些

VB.Net 如何通过鼠标单击和拖动来旋转矩形

vb.net 点击按钮选中listview最后一行

如何检测 webview2 中的鼠标点击(c#/vb.net)

vb中单击命令按钮触发哪些事件

求助:怎么实现css中—鼠标单击按钮后按钮换图片的效果