如何使用一个子程序为多个标签制作鼠标移动事件?

How to make a mousemove event for multiple labels with one sub procedure?

我在 class 中的一个项目中有以下代码,我总共需要复制大约 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

据说这可能是重复的。如果有人能告诉我如何用 mousemove 而不是 click 做同样的事情,那将是完美的。谢谢。

多个控件可以共享同一个事件。您只需要检查 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