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 イベントのイベント ハンドラーを作成します。 イベント ハンドラーのコードは、PictureBox という名前のpictureBox1と、ショートカット メニューを表示するコントロールTextBoxという名前のtextBox1の 2 つのコントロールを決定します。 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 イベントを処理して、ショートカット メニューがいつ表示されているかを判断できます。

Note

MenuItemで使用するためにMainMenuに表示ContextMenuオブジェクトを再利用するには、CloneMenu クラスの MenuItem メソッドを使用してメニューのコピーを作成する必要があります。 MenuItem クラスの MergeMenu メソッドを使用して、メニュー項目とそのサブメニュー項目を 1 つの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

メニューのウィンドウ ハンドルを表す値を取得します。

(継承元 Menu)
IsParent

このメニューにメニュー項目が含まれているかどうかを示す値を取得します。 このプロパティは読み取り専用です。

(継承元 Menu)
MdiListItem

複数のドキュメント インターフェイス (MDI) 子フォームの一覧を表示するために使用される MenuItem を示す値を取得します。

(継承元 Menu)
MenuItems

メニューに関連付けられている MenuItem オブジェクトのコレクションを示す値を取得します。

(継承元 Menu)
Name

Menuの名前を取得または設定します。

(継承元 Menu)
RightToLeft

コントロールによって表示されるテキストを右から左に表示するかどうかを示す値を取得または設定します。

Site

ISiteComponentを取得または設定します。

(継承元 Component)
SourceControl

ショートカット メニューを表示しているコントロールを取得します。

Tag

コントロールに関連付けられているユーザー定義データを取得または設定します。

(継承元 Menu)

メソッド

名前 説明
CloneMenu(Menu)

パラメーターとして渡された Menu を現在の Menuにコピーします。

(継承元 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)

1 つのメニューの MenuItem オブジェクトを現在のメニューとマージします。

(継承元 Menu)
OnCollapse(EventArgs)

Collapse イベントを発生させます。

OnPopup(EventArgs)

Popup イベントを発生させます。

ProcessCmdKey(Message, Keys, Control)

コマンド キーを処理します。

ProcessCmdKey(Message, Keys)

コマンド キーを処理します。

(継承元 Menu)
Show(Control, Point, LeftRightAlignment)

ショートカット メニューを指定した位置に表示し、指定した配置で表示します。

Show(Control, Point)

ショートカット メニューを指定した位置に表示します。

ToString()

String コントロールを表すMenuを返します。

(継承元 Menu)

イベント

名前 説明
Collapse

ショートカット メニューが折りたたまれたときに発生します。

Disposed

コンポーネントが Dispose() メソッドの呼び出しによって破棄されるときに発生します。

(継承元 Component)
Popup

ショートカット メニューが表示される前に発生します。

適用対象

こちらもご覧ください