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 事件建立事件處理常式。 事件處理常式中的程式碼會決定兩個控制項中的哪一個控制項名為 PictureBoxpictureBox1 ,而 TextBox 具名 textBox1 是顯示快捷方式功能表的控制項。 根據造成 顯示 ContextMenu 其快捷方式功能表的控制項而定,控制項會將適當的 MenuItem 物件新增至 ContextMenu 。 此範例會要求您有名為 的 ContextMenu 類別實例,其 contextMenu1 定義于表單內。 此範例也需要您有 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 控制項的快捷方式功能表,提供功能表項目來變更文字的字型、尋找控制項內的文字,或複製和貼上文字的剪貼簿功能。 您也可以在快捷方式功能表中顯示 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

取得包含 IContainerComponent

(繼承來源 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

取得或設定 ComponentISite

(繼承來源 Component)
SourceControl

取得顯示捷徑功能表的控制項。

Tag

取得或設定與控制項相關的使用者定義資料。

(繼承來源 Menu)

方法

CloneMenu(Menu)

將以參數傳遞的 Menu 複製到目前的 Menu

(繼承來源 Menu)
CreateMenuHandle()

建立 Menu 的新控制代碼。

(繼承來源 Menu)
CreateObjRef(Type)

建立包含所有相關資訊的物件,這些資訊是產生用來與遠端物件通訊的所需 Proxy。

(繼承來源 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()
已淘汰.

擷取控制這個執行個體存留期 (Lifetime) 原則的目前存留期服務物件。

(繼承來源 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

發生於顯示捷徑功能表之前。

適用於

另請參閱