Freigeben über


ContextMenu.SourceControl Eigenschaft

Definition

Ruft das Steuerelement ab, das das Kontextmenü anzeigt.

public:
 property System::Windows::Forms::Control ^ SourceControl { System::Windows::Forms::Control ^ get(); };
[System.ComponentModel.Browsable(false)]
public System.Windows.Forms.Control SourceControl { get; }
[<System.ComponentModel.Browsable(false)>]
member this.SourceControl : System.Windows.Forms.Control
Public ReadOnly Property SourceControl As Control

Eigenschaftswert

A Control that represents the control that is displaying the shortcut menu. Wenn kein Steuerelement das Kontextmenü angezeigt hat, gibt die Eigenschaft zurück null.

Attribute

Beispiele

Im folgenden Codebeispiel wird ein Ereignishandler für das Popup Ereignis der ContextMenu. Der Code im Ereignishandler bestimmt, welche von zwei Steuerelementen ein Benannter pictureBox1PictureBox und ein Benannter TextBoxtextBox1 das Steuerelement ist, das das Kontextmenü anzeigt. Je nachdem, welches Steuerelement dazu führte, dass das ContextMenu Kontextmenü angezeigt wurde, fügt das Steuerelement die entsprechenden MenuItem Objekte hinzu ContextMenu. In diesem Beispiel ist es erforderlich, dass Sie eine Instanz der ContextMenu Klasse ( benannt contextMenu1) innerhalb des Formulars definiert haben. In diesem Beispiel ist außerdem erforderlich, dass Sie ein Formular besitzen und einem Formular hinzugefügt haben und dass die Eigenschaft dieser Steuerelemente auf <a0/&0> festgelegt ist.

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

Hinweise

Mit dieser Eigenschaft können Sie bestimmen, welches Steuerelement derzeit das in der ContextMenuDatei definierte Kontextmenü anzeigt. Wenn das Kontextmenü derzeit nicht angezeigt wird, können Sie diese Eigenschaft verwenden, um zu bestimmen, welches Steuerelement zuletzt das Kontextmenü angezeigt hat. Sie können diese Eigenschaft im Popup Ereignis verwenden, um sicherzustellen, dass das Steuerelement die richtigen Menüelemente anzeigt. Sie können diese Eigenschaft auch verwenden, um einen Verweis auf das Steuerelement an eine Methode zu übergeben, die die Aufgaben ausführt, die einem Menübefehl zugeordnet sind, der im Kontextmenü angezeigt wird. Da die Form Klasse von erbt Control, können Sie diese Eigenschaft auch verwenden, wenn das ContextMenu Einem Formular zugeordnet ist.

Gilt für: