Поделиться через


ContextMenu.Popup Событие

Определение

Происходит перед отображением контекстного меню.

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

Тип события

Примеры

В следующем примере кода создается обработчик событий для Popup события ContextMenu. Код в обработчике событий определяет, какие из двух элементов управления PictureBox именованным pictureBox1 , а 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

Комментарии

Это событие можно использовать для инициализации MenuItem объектов перед их отображением. Например, если вы используете ContextMenu для трех TextBox элементов управления и хотите отключить определенные пункты меню в ContextMenu зависимости от того, в каком TextBox контекстном меню отображается контекстное меню, можно создать обработчик событий для этого события. Вы можете использовать SourceControl свойство, чтобы определить, какой TextBox из них будет отображаться ContextMenu и отключать соответствующие MenuItem объекты.

Дополнительные сведения об обработке событий см. в разделе "Обработка и создание событий".

Применяется к