ContextMenu.SourceControl Proprietà

Definizione

Ottiene il controllo in cui è visualizzato il menu di scelta rapida.

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

Valore della proprietà

Oggetto Control che rappresenta il controllo in cui è visualizzato il menu di scelta rapida. Se il menu di scelta rapida non è visualizzato in alcun controllo, la proprietà restituirà il valore null.

Attributi

Esempio

Nell'esempio di codice seguente viene creato un gestore eventi per l'evento Popup di ContextMenu. Il codice nel gestore eventi determina quale di due controlli un PictureBox denominato e un TextBox denominato pictureBox1textBox1 è il controllo che visualizza il menu di scelta rapida. A seconda del controllo che ha causato la ContextMenu visualizzazione del relativo menu di scelta rapida, il controllo aggiunge gli oggetti appropriati MenuItem all'oggetto ContextMenu. In questo esempio è necessaria un'istanza ContextMenu della classe denominata , definita contextMenu1all'interno del modulo. In questo esempio è inoltre necessario disporre di un TextBox oggetto e PictureBox aggiunto a un modulo e che la ContextMenu proprietà di questi controlli sia impostata su 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

Commenti

Questa proprietà consente di determinare quale controllo visualizza attualmente il menu di scelta rapida definito in ContextMenu. Se il menu di scelta rapida non è attualmente visualizzato, è possibile usare questa proprietà per determinare quale controllo ha visualizzato l'ultimo menu di scelta rapida. È possibile usare questa proprietà nell'evento Popup per assicurarsi che il controllo visualizzi le voci di menu appropriate. È anche possibile usare questa proprietà per passare un riferimento al controllo a un metodo che esegue le attività associate a un comando di menu visualizzato nel menu di scelta rapida. Poiché la classe eredita da Control, è anche possibile usare questa proprietà se l'oggetto FormContextMenu è associato a un modulo.

Si applica a