次の方法で共有


ContextMenu.Popup イベント

定義

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

public:
 event EventHandler ^ Popup;
public event EventHandler Popup;
member this.Popup : EventHandler 
Public Custom Event Popup As EventHandler 

イベントの種類

次のコード例では、 の イベントのイベント ハンドラーをPopupContextMenu作成します。 イベント ハンドラーのコードは、2 つのコントロールPictureBoxのうち、名前付き コントロールと TextBox 名前付き pictureBox1textBox1 コントロールのうち、ショートカット メニューを表示するコントロールを決定します。 がショートカット メニューを表示する原因となった ContextMenu コントロールに応じて、適切な MenuItem オブジェクトが に追加されます ContextMenu。 この例では、 という名前contextMenu1の クラスのインスタンスがContextMenuフォーム内で定義されている必要があります。 この例では、 を持ち 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

注釈

このイベントを使用して、オブジェクトを表示する MenuItem 前に初期化できます。 たとえば、3 つのTextBoxコントロールに 対して をContextMenu使用し、ショートカット メニューを表示しているTextBoxメニュー項目に応じて でContextMenu特定のメニュー項目を無効にする場合は、このイベントのイベント ハンドラーを作成できます。 プロパティを使用して、 をSourceControl表示する対象TextBoxを特定し、適切なMenuItemオブジェクトContextMenuを無効にすることができます。

イベントの処理の詳細については、「処理とイベントの発生」を参照してください。

適用対象