ContextMenu クラスとは? わかりやすく解説

ContextMenu クラス

ショートカット メニュー表します。ContextMenuStrip では、以前のバージョンContextMenu コントロール機能置換または追加されていますが、下位互換性維持し必要に応じて今後使用できるように、ContextMenu残されています。

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

解説解説

ContextMenu クラスは、ユーザーコントロールまたはフォーム領域の上で、右クリックすると表示されるショートカット メニュー表します通常ショートカット メニューフォームの MainMenu のさまざまなメニュー項目を組み合わせるために使用されます。ショートカット メニューは、アプリケーションコンテキスト指定されるためユーザーにとっては使いやすくなります。たとえば、TextBox割り当てられショートカット メニュー使用すると、テキストフォント変更したり、コントロール内のテキスト検索するためのメニュー項目、またはテキストコピーして貼り付けるクリップボード機能使用できますまた、MainMenu 内にない新しMenuItem オブジェクトショートカット メニュー表示してMainMenu では表示されない、状況合ったコマンド使用することもできます

通常ショートカット メニューは、ユーザーコントロールまたはフォーム自体の上右ボタンクリックする表示されます。表示されているコントロールおよび Form は、ショートカット メニュー表示するコントロールContextMenu クラスバインドする ContextMenu プロパティ持ってます。ContextMenu複数コントロール使用できます。SourceControl プロパティ使用すると、コントロール固有のタスク実行、またはコントロール表示されるショートカット メニュー変更のために、どのコントロール最後にショートカット メニュー表示されたかを確認できます

メニュー表示される前にチェック マーク設定、項目の無効化、および他のメニュー タスク実行のために、いつショートカット メニュー表示していたかを知ることができますPopup イベント処理すると、いつショートカット メニュー表示されていたかを確認できます

メモメモ

MainMenu表示されている MenuItem オブジェクト再利用して、ContextMenu使用するには、MenuItem クラスの CloneMenu メソッド使用してメニューコピー作成する必要がありますMenuItem クラスの MergeMenu メソッド使用すると、メニュー項目とそのサブメニュー項目を 1 つMenuItem オブジェクトマージすることもできます

Windows Mobile for Pocket PCWindows Mobile for SmartphoneWindows CE プラットフォームメモ : Pocket PC では、子フォームでのショートカット メニュー使用避けてください。その親フォーム破棄した後で表示されたままとなるためです。

使用例使用例

ContextMenuPopup イベントイベント ハンドラ作成するコード例次に示します。このイベント ハンドラコードは、ショートカット メニュー表示しているコントロールpictureBox1 という名前の PictureBox コントロールtextBox1 という名前の TextBox コントロールのどちらであるかを判断します。どちらのコントロールContextMenuショートカット メニュー表示したに応じて適切な MenuItem オブジェクトContextMenu追加されます。この例では、フォーム内で定義されている contextMenu1 という名前の ContextMenu クラスインスタンスが既に存在する必要があります。またこの例では、TextBoxPictureBoxフォーム追加されており、これらのコントロールContextMenu プロパティcontextMenu1設定されている必要があります

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 'MyPopupEventHandler '
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:
   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(Object sender,
 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.get_MenuItems().Clear();
    if (contextMenu1.get_SourceControl().Equals(textBox1)) {
        // Add MenuItems to display for the TextBox.
        contextMenu1.get_MenuItems().Add(menuItem1);
        contextMenu1.get_MenuItems().Add(menuItem2);
    }
    else {
        if (contextMenu1.get_SourceControl().Equals(pictureBox1))
 {
            // Add the MenuItem to display for the PictureBox.
            contextMenu1.get_MenuItems().Add(menuItem3);
        }
    }
} //MyPopupEventHandler
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Menu
        System.Windows.Forms.ContextMenu
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ContextMenu クラス」の関連用語

ContextMenu クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ContextMenu クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS