ContextMenu.Popup Händelse

Definition

Inträffar innan snabbmenyn visas.

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

Händelsetyp

Exempel

I följande kodexempel skapas en händelsehanterare för Popup händelsen för ContextMenu. Koden i händelsehanteraren avgör vilken av två kontroller som en PictureBox namngiven pictureBox1 och en TextBox namngiven textBox1 är kontrollen som visar snabbmenyn. Beroende på vilken kontroll som gjorde ContextMenu att snabbmenyn visades lägger kontrollen till lämpliga MenuItem objekt i ContextMenu. Det här exemplet kräver att du har en instans av ContextMenu klassen med namnet contextMenu1, definierad i formuläret. Det här exemplet kräver också att du har ett TextBox och PictureBox lagt till i ett formulär och att ContextMenu egenskapen för dessa kontroller är inställd på 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

Kommentarer

Du kan använda den här händelsen för att initiera objekten MenuItem innan de visas. Om du till exempel använder en ContextMenu för tre TextBox kontroller och vill inaktivera vissa menyalternativ i ContextMenu beroende på vilken som TextBox visar snabbmenyn, kan du skapa en händelsehanterare för den här händelsen. Du kan använda egenskapen SourceControl för att avgöra vilken som TextBox ska visa ContextMenu och inaktivera lämpliga MenuItem objekt.

Mer information om hur du hanterar händelser finns i Hantera och höja händelser.

Gäller för