Freigeben über


ContextMenu.Popup-Ereignis

Tritt ein, bevor das Kontextmenü angezeigt wird.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
Public Event Popup As EventHandler
'Usage
Dim instance As ContextMenu
Dim handler As EventHandler

AddHandler instance.Popup, handler
public event EventHandler Popup
public:
event EventHandler^ Popup {
    void add (EventHandler^ value);
    void remove (EventHandler^ value);
}
/** @event */
public void add_Popup (EventHandler value)

/** @event */
public void remove_Popup (EventHandler value)
JScript unterstützt die Verwendung von Ereignissen, aber nicht die Deklaration von neuen Ereignissen.

Hinweise

Sie können dieses Ereignis verwenden, um die MenuItem-Objekte zu initialisieren, bevor diese angezeigt werden. Wenn Sie z. B. ein ContextMenu für drei TextBox-Steuerelemente verwenden und abhängig davon, welche TextBox das Kontextmenü anzeigt, bestimmte Menüelemente im ContextMenu deaktivieren möchten, können Sie einen Ereignishandler für dieses Ereignis erstellen. Sie können mithilfe der SourceControl-Eigenschaft ermitteln, welche TextBox gerade das ContextMenu anzeigt, und die entsprechenden MenuItem-Objekte deaktivieren.

Weitere Informationen über die Behandlung von Ereignissen finden Sie unter Behandeln von Ereignissen.

Beispiel

Im folgenden Codebeispiel wird ein Ereignishandler für das Popup-Ereignis von ContextMenu erstellt. Der Code des Ereignishandlers bestimmt, welches von zwei Steuerelementen (eine PictureBox mit dem Namen pictureBox1 und eine TextBox mit dem Namen textBox1) das Kontextmenü anzeigt. Dem ContextMenu werden je nach Steuerelement, das ContextMenu zum Einblenden des Kontextmenüs veranlasst hat, die entsprechenden MenuItem-Objekte hinzugefügt. In diesem Beispiel wird vorausgesetzt, dass innerhalb des Formulars eine Instanz der ContextMenu-Klasse mit dem Namen contextMenu1 definiert ist. Es wird außerdem vorausgesetzt, dass einem Formular eine TextBox und eine PictureBox hinzugefügt und die ContextMenu-Eigenschaft dieser Steuerelemente auf contextMenu1 festgelegt wurde.

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

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

ContextMenu-Klasse
ContextMenu-Member
System.Windows.Forms-Namespace