MenuItem.Popup 事件

在显示菜单项的菜单项列表之前发生。

**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)

语法

声明
Public Event Popup As EventHandler
用法
Dim instance As MenuItem
Dim handler As EventHandler

AddHandler instance.Popup, handler
public event EventHandler Popup
public:
event EventHandler^ Popup {
    void add (EventHandler^ value);
    void remove (EventHandler^ value);
}
/** @event */
public void add_Popup (EventHandler value)

/** @event */
public void remove_Popup (EventHandler value)
JScript 支持使用事件,但不支持进行新的声明。

备注

该事件仅在菜单项有要显示的子菜单项时发生。在显示各菜单项之前,可基于应用程序的状态使用该事件处理程序添加、移除、启用、禁用、选中或取消选中菜单项。有关处理事件的更多信息,请参见 使用事件

示例

下面的代码示例演示如何使用 Popup 事件,来确定是否在那些为剪切、复制和删除操作提供支持的 MenuItem 对象所在的菜单显示之前就启用了这些对象。此示例确定在启用 MenuItem 对象之前,textBox1(窗体上的 TextBox 控件)是否已被启用、是否具有输入焦点以及是否选定了文本。此示例要求已创建三个名称分别为 menuCutmenuCopymenuDeleteMenuItem 对象。

Private Sub PopupMyMenu(ByVal sender As Object, ByVal e As System.EventArgs) Handles menuEdit.Popup
   If textBox1.Enabled = False OrElse textBox1.Focused = False OrElse textBox1.SelectedText.Length = 0 Then
      menuCut.Enabled = False
      menuCopy.Enabled = False
      menuDelete.Enabled = False
   Else
      menuCut.Enabled = True
      menuCopy.Enabled = True
      menuDelete.Enabled = True
   End If
End Sub
private void PopupMyMenu(object sender, System.EventArgs e)
{
   if (textBox1.Enabled == false || textBox1.Focused == false ||
      textBox1.SelectedText.Length == 0)
   {
      menuCut.Enabled = false;
      menuCopy.Enabled = false;
      menuDelete.Enabled = false;
   }
   else
   {
      menuCut.Enabled = true;
      menuCopy.Enabled = true;
      menuDelete.Enabled = true;
   }
}
private:
   void PopupMyMenu( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      if ( textBox1->Enabled == false || textBox1->Focused == false || textBox1->SelectedText->Length == 0 )
      {
         menuCut->Enabled = false;
         menuCopy->Enabled = false;
         menuDelete->Enabled = false;
      }
      else
      {
         menuCut->Enabled = true;
         menuCopy->Enabled = true;
         menuDelete->Enabled = true;
      }
   }
private void PopupMyMenu(Object sender, System.EventArgs e)
{
    if (textBox1.get_Enabled() == false || textBox1.get_Focused() == false 
        || textBox1.get_SelectedText().get_Length() == 0) {
        menuCut.set_Enabled(false);
        menuCopy.set_Enabled(false);
        menuDelete.set_Enabled(false);
    }
    else {
        menuCut.set_Enabled(true);
        menuCopy.set_Enabled(true);
        menuDelete.set_Enabled(true);
    }
} //PopupMyMenu

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

MenuItem 类
MenuItem 成员
System.Windows.Forms 命名空间