VB.NET如何使一个子项应用于多个项目?

VB.NET如何使一个子项应用于多个项目?,vb.net,vb6,contextmenu,Vb.net,Vb6,Contextmenu,我有一个很长的上下文菜单,我想给这些项添加一些视觉效果(不,我不想创建新的渲染器),所以我只为其中一个列表项创建了MouseEnter和MouseLeave事件。 现在我想将其扩展到所有上下文菜单项,而不为每个项创建两个单独的事件 以下是我目前的一个简短示例: Private Sub NewMenuItems_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewMenuItem1.Mo

我有一个很长的上下文菜单,我想给这些项添加一些视觉效果(不,我不想创建新的渲染器),所以我只为其中一个列表项创建了MouseEnter和MouseLeave事件。 现在我想将其扩展到所有上下文菜单项,而不为每个项创建两个单独的事件

以下是我目前的一个简短示例:

Private Sub NewMenuItems_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewMenuItem1.MouseEnter, NewMenuItem2.MouseEnter, etc.
    MenuItem.ForeColor = Color.Red
End Sub

Private Sub NewMenuItems_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewMenuItem1.MouseLeave, NewMenuItem2.MouseLeave
    MenuItem.ForeColor = Color.Cyan
End Sub
每个项目唯一不同的是“.Forecolor”前面的内容。
如何使所有项同时执行此操作?

如果
MenuItem
的所有实例都使用相同的事件处理程序,则可以使用
sender
参数来区分实际调用它的实例,该参数应指代调用事件的实例。所以只要将
sender
转换为
MenuItem
就可以了,这就是你要找的

请注意,您应该始终小心铸造,当然。在这种情况下,您需要确保只有一个
MenuItem
调用此处理程序,否则您需要在另一个对象调用强制转换时对其进行一些错误检查/处理。

谢谢:)这正是我需要的