【问题标题】:vb.net weird action with mouse button event and labelvb.net 带有鼠标按钮事件和标签的奇怪动作
【发布时间】: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 放在源代码文件的顶部,以便编译器可以告诉您此类错误。..

标签: vb.net button label mouse isnumeric


【解决方案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 次单击时工作,仅使用鼠标左键,但无论如何都可以。另一个问题,当鼠标右键单击并且不显示错误时,我如何告诉程序什么都不做?
猜你喜欢
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-27
  • 2018-10-08
  • 1970-01-01
  • 2016-02-06
相关资源
最近更新 更多