ContextMenu 类

定义

表示快捷菜单。

此类在 .NET Core 3.1 及更高版本中不可用。 请改用 ContextMenuStrip,它替换和扩展了 ContextMenu 控件。

public ref class ContextMenu : System::Windows::Forms::Menu
public class ContextMenu : System.Windows.Forms.Menu
type ContextMenu = class
    inherit Menu
Public Class ContextMenu
Inherits Menu
继承

示例

下面的代码示例为 PopupContextMenu事件创建事件处理程序。 事件处理程序中的代码确定名为 和 命名pictureBox1textBox1的两个PictureBox控件中的哪一个TextBox是显示快捷菜单的控件。 根据哪个控件导致 ContextMenu 显示其快捷菜单,控件会将相应的 MenuItem 对象添加到 ContextMenu。 此示例要求在窗体中定义一个名为 contextMenu1ContextMenu 类的实例。 此示例还要求将 TextBoxPictureBox 添加到窗体中, ContextMenu 并且这些控件的 属性设置为 contextMenu1

private:
   void MyPopupEventHandler( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Define the MenuItem objects to display for the TextBox.
      MenuItem^ menuItem1 = gcnew MenuItem( "&Copy" );
      MenuItem^ menuItem2 = gcnew MenuItem( "&Find and Replace" );
      // Define the MenuItem object to display for the PictureBox.
      MenuItem^ menuItem3 = gcnew MenuItem( "C&hange Picture" );
      
      // Clear all previously added MenuItems.
      contextMenu1->MenuItems->Clear();

      if ( contextMenu1->SourceControl == textBox1 )
      {
         
         // Add MenuItems to display for the TextBox.
         contextMenu1->MenuItems->Add( menuItem1 );
         contextMenu1->MenuItems->Add( menuItem2 );
      }
      else if ( contextMenu1->SourceControl == pictureBox1 )
      {
         // Add the MenuItem to display for the PictureBox.
         contextMenu1->MenuItems->Add( menuItem3 );
      }
   }
private void MyPopupEventHandler(System.Object sender, System.EventArgs e)
 {
    // Define the MenuItem objects to display for the TextBox.
    MenuItem menuItem1 = new MenuItem("&Copy");
    MenuItem menuItem2 = new MenuItem("&Find and Replace");
    // Define the MenuItem object to display for the PictureBox.
    MenuItem menuItem3 = new MenuItem("C&hange Picture");

    // Clear all previously added MenuItems.
    contextMenu1.MenuItems.Clear();
 
    if(contextMenu1.SourceControl == textBox1)
    {
       // Add MenuItems to display for the TextBox.
       contextMenu1.MenuItems.Add(menuItem1);
       contextMenu1.MenuItems.Add(menuItem2);
    }
    else if(contextMenu1.SourceControl == pictureBox1)
    {
       // Add the MenuItem to display for the PictureBox.
       contextMenu1.MenuItems.Add(menuItem3);
    }
 }
Private Sub MyPopupEventHandler(sender As System.Object, e As System.EventArgs)
    ' Define the MenuItem objects to display for the TextBox.
    Dim menuItem1 As New MenuItem("&Copy")
    Dim menuItem2 As New MenuItem("&Find and Replace")
    ' Define the MenuItem object to display for the PictureBox.
    Dim menuItem3 As New MenuItem("C&hange Picture")
    
    ' Clear all previously added MenuItems.
    contextMenu1.MenuItems.Clear()
    
    If contextMenu1.SourceControl Is textBox1 Then
        ' Add MenuItems to display for the TextBox.
        contextMenu1.MenuItems.Add(menuItem1)
        contextMenu1.MenuItems.Add(menuItem2)
    ElseIf contextMenu1.SourceControl Is pictureBox1 Then
        ' Add the MenuItem to display for the PictureBox.
        contextMenu1.MenuItems.Add(menuItem3)
    End If
End Sub

注解

此类在 .NET Core 3.1 及更高版本中不可用。 请改用 ContextMenuStrip

ContextMenu类表示当用户在窗体的控件或区域上单击鼠标右键时可以显示的快捷菜单。 快捷菜单通常用于合并窗体中的 不同菜单项,这些菜单项 MainMenu 对于给定应用程序的上下文的用户很有用。 例如,可以使用分配给 TextBox 控件的快捷菜单来提供菜单项,用于更改文本字体、查找控件中的文本或用于复制和粘贴文本的剪贴板功能。 还可以在不在 中的MainMenu快捷菜单中显示新MenuItem对象,以提供不适合MainMenu显示的特定于情况的命令。

通常,当用户单击控件或窗体本身上的鼠标右键时,将显示快捷菜单。 可见控件 和 Form 具有将 ContextMenu 类绑定到 ContextMenu 显示快捷菜单的控件的属性。 多个控件可以使用 ContextMenu。 可以使用 SourceControl 属性来确定哪个控件上次显示快捷菜单,以便执行特定于该控件的任务或修改为控件显示的快捷菜单。

你可能想知道快捷菜单何时显示,以便设置检查标记、禁用项,以及执行其他菜单任务,然后再向用户显示菜单。 可以处理 Popup 事件以确定何时显示快捷菜单。

注意

若要重用 MenuItem 中显示的 MainMenu 对象以在 中使用ContextMenu,必须使用 类的 MenuItem 方法创建菜单CloneMenu的副本。 还可以使用 MergeMenu 类的 方法将菜单项及其子菜单项合并到单个MenuItem对象中MenuItem

构造函数

ContextMenu()

初始化没有任何指定菜单项的 ContextMenu 类的一个新实例。

ContextMenu(MenuItem[])

使用一组指定的 ContextMenu 对象初始化 MenuItem 类的一个新实例。

字段

FindHandle

指定 FindMenuItem(Int32, IntPtr) 方法应搜索一个句柄。

(继承自 Menu)
FindShortcut

指定 FindMenuItem(Int32, IntPtr) 方法应搜索一个快捷方式。

(继承自 Menu)

属性

CanRaiseEvents

获取一个指示组件是否可以引发事件的值。

(继承自 Component)
Container

获取包含 IContainerComponent

(继承自 Component)
DesignMode

获取一个值,用以指示 Component 当前是否处于设计模式。

(继承自 Component)
Events

获取附加到此 Component 的事件处理程序的列表。

(继承自 Component)
Handle

获取表示菜单的窗口句柄的值。

(继承自 Menu)
IsParent

获取一个值,通过该值指示此菜单是否包含任何菜单项。 此属性是只读的。

(继承自 Menu)
MdiListItem

获取一个值,通过该值指示用于显示多文档界面 (MDI) 子窗体列表的 MenuItem

(继承自 Menu)
MenuItems

获取一个值,通过该值指示与菜单关联的 MenuItem 对象的集合。

(继承自 Menu)
Name

获取或设置 Menu 的名称。

(继承自 Menu)
RightToLeft

获取或设置一个值,该值指示由控件显示的文本是否从右向左显示。

Site

获取或设置 ComponentISite

(继承自 Component)
SourceControl

获取当前显示快捷菜单的控件。

Tag

获取或设置与控件关联的用户定义的数据。

(继承自 Menu)

方法

CloneMenu(Menu)

复制作为参数被传递到当前 MenuMenu

(继承自 Menu)
CreateMenuHandle()

创建 Menu 的新句柄。

(继承自 Menu)
CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
Dispose()

释放由 Component 使用的所有资源。

(继承自 Component)
Dispose(Boolean)

处置由 Menu 占用的资源(内存除外)。

(继承自 Menu)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
FindMenuItem(Int32, IntPtr)

获取 MenuItem,它包含指定的值。

(继承自 Menu)
FindMergePosition(Int32)

返回菜单项应插入菜单的位置。

(继承自 Menu)
GetContextMenu()

获取包含该菜单的 ContextMenu

(继承自 Menu)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetMainMenu()

获取包含该菜单的 MainMenu

(继承自 Menu)
GetService(Type)

返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。

(继承自 Component)
GetType()

获取当前实例的 Type

(继承自 Object)
InitializeLifetimeService()
已过时.

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
MergeMenu(Menu)

将一个菜单的 MenuItem 对象与当前菜单合并。

(继承自 Menu)
OnCollapse(EventArgs)

引发 Collapse 事件。

OnPopup(EventArgs)

引发 Popup 事件。

ProcessCmdKey(Message, Keys)

处理命令键。

(继承自 Menu)
ProcessCmdKey(Message, Keys, Control)

处理命令键。

Show(Control, Point)

在指定位置显示快捷菜单。

Show(Control, Point, LeftRightAlignment)

在指定的位置使用指定的对齐方式显示快捷菜单。

ToString()

返回表示 String 控件的 Menu

(继承自 Menu)

事件

Collapse

当快捷菜单折叠时发生。

Disposed

在通过调用 Dispose() 方法释放组件时发生。

(继承自 Component)
Popup

在快捷菜单显示之前发生。

适用于

另请参阅