Compartilhar via


ContextMenu.SourceControl Propriedade

Definição

Obtém o controle que está exibindo o menu de atalho.

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

Valor da propriedade

Um Control que representa o controle que está exibindo o menu de atalho. Se nenhum controle tiver exibido o menu de atalho, a propriedade retornará null.

Atributos

Exemplos

O exemplo de código a ContextMenuseguir cria um manipulador de eventos para o Popup evento do . O código no manipulador de eventos determina qual dos dois controles um PictureBox nomeado pictureBox1 e um TextBox nomeado textBox1 é o controle que exibe o menu de atalho. Dependendo de qual controle causou a exibição de ContextMenu seu menu de atalho, o controle adiciona os objetos apropriados MenuItem ao ContextMenu. Este exemplo requer que você tenha uma instância da ContextMenu classe, nomeada contextMenu1, definida dentro do formulário. Este exemplo também exige que você tenha um TextBox formulário e PictureBox adicionado a um formulário e que a ContextMenu propriedade desses controles seja definida como 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

Comentários

Essa propriedade permite determinar qual controle exibe atualmente o menu de atalho definido no ContextMenu. Se o menu de atalho não estiver exibido no momento, você poderá usar essa propriedade para determinar qual controle exibiu o menu de atalho pela última vez. Você pode usar essa propriedade no Popup evento para garantir que o controle exiba os itens de menu adequados. Você também pode usar essa propriedade para passar uma referência ao controle para um método que executa as tarefas associadas a um comando de menu exibido no menu de atalho. Como a Form classe herda, Controlvocê também pode usar essa propriedade se estiver ContextMenu associada a um formulário.

Aplica-se a