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 事件建立事件處理常式。 事件處理常式中的程式碼會決定兩個控制項中的哪一個控制項名為 PictureBoxpictureBox1
,而 TextBox 具名 textBox1
是顯示快捷方式功能表的控制項。 根據造成 顯示 ContextMenu 其快捷方式功能表的控制項而定,控制項會將適當的 MenuItem 物件新增至 ContextMenu 。 此範例會要求您有名為 的 ContextMenu 類別實例,其 contextMenu1
定義于表單內。 此範例也需要您有 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 控制項的快捷方式功能表,提供功能表項目來變更文字的字型、尋找控制項內的文字,或複製和貼上文字的剪貼簿功能。 您也可以在快捷方式功能表中顯示 MenuItem 新物件,這些物件不在 內 MainMenu ,以提供不適合 MainMenu 顯示的情況特定命令。
一般而言,當使用者按一下控制項或表單本身的滑鼠右鍵時,就會顯示快捷方式功能表。 可見控制項和 Form 具有 ContextMenu 屬性,會將 類別系結 ContextMenu 至顯示快捷方式功能表的控制項。 一個以上的控制項可以使用 ContextMenu 。 您可以使用 SourceControl 屬性來判斷上次顯示快顯功能表的控制項,以便執行控制項特定的工作,或修改控制項所顯示的快捷方式功能表。
您可能想要知道快顯功能表的顯示時機,以便設定核取記號、停用專案,以及在向使用者顯示功能表之前執行其他功能表工作。 您可以處理 事件, Popup 以判斷何時顯示快捷方式功能表。
注意
若要重複使用 MenuItem 中顯示的 MainMenu 物件,以便在 中使用 ContextMenu ,您必須使用 CloneMenu 類別的 方法來建立功能表的 MenuItem 複本。 您也可以使用 MergeMenu 類別的 MenuItem 方法,將功能表項目及其子功能表項合併成單 MenuItem 一物件。
建構函式
ContextMenu() |
不使用任何指定的功能表項目,初始化 ContextMenu 類別的新執行個體。 |
ContextMenu(MenuItem[]) |
使用一組指定 ContextMenu 物件,初始化 MenuItem 類別的新執行個體。 |
欄位
FindHandle |
指定 FindMenuItem(Int32, IntPtr) 方法應該搜尋控制代碼。 (繼承來源 Menu) |
FindShortcut |
指定 FindMenuItem(Int32, IntPtr) 方法應該搜尋捷徑。 (繼承來源 Menu) |
屬性
CanRaiseEvents |
取得值,指出元件是否能引發事件。 (繼承來源 Component) |
Container |
取得包含 IContainer 的 Component。 (繼承來源 Component) |
DesignMode |
取得值,指出 Component 目前是否處於設計模式。 (繼承來源 Component) |
Events |
取得附加在這個 Component 上的事件處理常式清單。 (繼承來源 Component) |
Handle |
取得值,表示功能表的視窗控制代碼 (Window Handle)。 (繼承來源 Menu) |
IsParent |
取得值,指出這個功能表是否包含任何功能表項目。 這個屬性是唯讀的。 (繼承來源 Menu) |
MdiListItem |
取得值,指出用來顯示多重文件介面 (MDI) 子表單清單的 MenuItem。 (繼承來源 Menu) |
MenuItems |
取得值,指出與功能表相關的 MenuItem 物件集合。 (繼承來源 Menu) |
Name |
取得或設定 Menu 的名稱。 (繼承來源 Menu) |
RightToLeft |
取得或設定值,指出控制項所顯示的文字是否從右到左。 |
Site | (繼承來源 Component) |
SourceControl |
取得顯示捷徑功能表的控制項。 |
Tag |
取得或設定與控制項相關的使用者定義資料。 (繼承來源 Menu) |
方法
事件
Collapse |
發生於捷徑功能表摺疊時。 |
Disposed |
當 Dispose() 方法的呼叫處置元件時,就會發生。 (繼承來源 Component) |
Popup |
發生於顯示捷徑功能表之前。 |