【问题标题】:How to make a mousemove event for multiple labels with one sub procedure?如何使用一个子过程为多个标签创建 mousemove 事件?
【发布时间】:2015-01-28 16:35:54
【问题描述】:

我在课堂上工作的项目有以下代码,我总共需要复制大约 9 次。每次唯一会改变的是类别编号和标签名称加 1。我是否必须为每个单独创建一个 mousemove 事件,或者有没有办法在一个子过程中做到这一点?我不在乎它是否更难,或者效率更低,我只想看看它是否可能以及如何。谢谢。

Private Sub lbl1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lbl1.MouseMove
    category = 1
    scoreRoll()
    lbl1.Text = score
End Sub

据说这可能是重复的。如果有人能告诉我如何用鼠标移动而不是点击来做同样的事情,那将是完美的。谢谢。

【问题讨论】:

  • @Bjørn-RogerKringsjå 好的,但我没有点击,所以我如何用鼠标移动来做同样的事情?
  • 应用相同的原理。检查答案并将概念应用于您的特定情况
  • 你在开玩笑吧?概念是一样的。将Click 替换为MouseMove

标签: vb.net label mousemove


【解决方案1】:

多个控件可以共享同一个事件。您只需检查sender 变量以查看它是哪一个并进行适当处理:

Private Sub lbl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lbl1.MouseMove, lbl2.MouseMove, lbl3.MouseMove, lbl4.MouseMove, lbl5.MouseMove, lbl6.MouseMove, lbl7.MouseMove, lbl8.MouseMove, lbl9.MouseMove
    Dim lbl As Label = CType(sender, Label)

    category = CInt(lbl.Name.Replace("lbl", ""))
    scoreRoll()
    lbl.Text = score
End Sub

【讨论】:

  • 谢谢。我无法理解被视为“重复”的其他页面。
  • @user1486297 霍尔先生的回答完全一样
猜你喜欢
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多