如何:在VB.NET中使用ToolStripMenuItem.DropDownItemClicked

如何:在VB.NET中使用ToolStripMenuItem.DropDownItemClicked,vb.net,event-handling,contextmenustrip,toolstripmenu,Vb.net,Event Handling,Contextmenustrip,Toolstripmenu,我有一个toolStripMenuItem,它是一个包含其他下拉项的菜单。当通过选择某个下拉项引发DropDownItemClicked事件时,如果满足某些条件,我希望使用该事件,如下所示: Private Sub tsmi_DropDownItemClicked( _ ByVal sender As Object, _ ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) _

我有一个toolStripMenuItem,它是一个包含其他下拉项的菜单。当通过选择某个下拉项引发DropDownItemClicked事件时,如果满足某些条件,我希望使用该事件,如下所示:

Private Sub tsmi_DropDownItemClicked( _
        ByVal sender As Object, _
        ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) _
        Handles tsmi.DropDownItemClicked


        ...

        If some_condition_is_satisfied then
           e.Cancel = True <------ Cancel is not available in this event!
        End If

        ...
End Sub

那么我如何使用此事件呢?

如果您只想终止sub,那么

If some_condition_is_satisfied then
    exit sub
End If

即使是在事件处理程序中,也可以做到这一点。但是,如果您希望程序在子对象被取消时收到通知,则需要声明一个具有类级别作用域的布尔变量,并在子对象的开头将该变量设置为false,然后在
if..then
条件中,将其设置为true。

如果您可以取消,这是否会使它看起来像被破坏了?当满足条件时,您是否可以禁用某些子项?
If some_condition_is_satisfied then
    exit sub
End If