Freigeben über


ContextMenu.SourceControl-Eigenschaft

Ruft das Steuerelement ab, das das Kontextmenü anzeigt.

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

Syntax

'Declaration
Public ReadOnly Property SourceControl As Control
'Usage
Dim instance As ContextMenu
Dim value As Control

value = instance.SourceControl
public Control SourceControl { get; }
public:
property Control^ SourceControl {
    Control^ get ();
}
/** @property */
public Control get_SourceControl ()
public function get SourceControl () : Control

Eigenschaftenwert

Ein Control, das das Kontextmenü anzeigende Steuerelement darstellt. Wenn kein Steuerelement das Kontextmenü angezeigt hat, gibt diese Eigenschaft NULL (Nothing in Visual Basic) zurück.

Hinweise

Mit dieser Eigenschaft können Sie ermitteln, welches Steuerelement derzeit das in ContextMenu definierte Kontextmenü anzeigt. Wenn das Kontextmenü derzeit nicht angezeigt wird, können Sie mithilfe dieser Eigenschaft ermitteln, welches Steuerelement das Kontextmenü zuletzt angezeigt hat. Sie können mithilfe dieser Eigenschaft im Popup-Ereignis sicherstellen, dass das Steuerelement die richtigen Menüelemente anzeigt. Außerdem können Sie mithilfe dieser Eigenschaft einen Verweis auf das Steuerelement an eine Methode übergeben, die die Aufgaben ausführt, die einem im Kontextmenü angezeigten Menübefehl zugeordnet sind. Da die Form-Klasse von Control erbt, können Sie diese Eigenschaft auch verwenden, wenn das ContextMenu einem Formular zugeordnet ist.

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

Siehe auch

Referenz

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