ContextMenu 类
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示快捷菜单。
此类在 .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
- 继承
下面的代码示例为 Popup 的 ContextMenu事件创建事件处理程序。 事件处理程序中的代码确定名为 和 命名pictureBox1
textBox1
的两个PictureBox控件中的哪一个TextBox是显示快捷菜单的控件。 根据哪个控件导致 ContextMenu 显示其快捷菜单,控件会将相应的 MenuItem 对象添加到 ContextMenu。 此示例要求在窗体中定义一个名为 contextMenu1
的 ContextMenu 类的实例。 此示例还要求将 TextBox 和 PictureBox 添加到窗体中, 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。
Context |
初始化没有任何指定菜单项的 ContextMenu 类的一个新实例。 |
Context |
使用一组指定的 ContextMenu 对象初始化 MenuItem 类的一个新实例。 |
Find |
指定 FindMenuItem(Int32, IntPtr) 方法应搜索一个句柄。 (继承自 Menu) |
Find |
指定 FindMenuItem(Int32, IntPtr) 方法应搜索一个快捷方式。 (继承自 Menu) |
Can |
获取一个指示组件是否可以引发事件的值。 (继承自 Component) |
Container |
获取包含 IContainer 的 Component。 (继承自 Component) |
Design |
获取一个值,用以指示 Component 当前是否处于设计模式。 (继承自 Component) |
Events |
获取附加到此 Component 的事件处理程序的列表。 (继承自 Component) |
Handle |
获取表示菜单的窗口句柄的值。 (继承自 Menu) |
Is |
获取一个值,通过该值指示此菜单是否包含任何菜单项。 此属性是只读的。 (继承自 Menu) |
Mdi |
获取一个值,通过该值指示用于显示多文档界面 (MDI) 子窗体列表的 MenuItem。 (继承自 Menu) |
Menu |
获取一个值,通过该值指示与菜单关联的 MenuItem 对象的集合。 (继承自 Menu) |
Name |
获取或设置 Menu 的名称。 (继承自 Menu) |
Right |
获取或设置一个值,该值指示由控件显示的文本是否从右向左显示。 |
Site | (继承自 Component) |
Source |
获取当前显示快捷菜单的控件。 |
Tag |
获取或设置与控件关联的用户定义的数据。 (继承自 Menu) |
产品 | 版本 |
---|---|
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
Windows Desktop | 3.0 |