ContextMenu.SourceControl Propriedade

Definição

Recebe o controlo que está a mostrar o menu de atalhos.

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 de Propriedade

A que representa o controlo que está a mostrar o menu de Control atalho. Se nenhum controlo tiver sido exibido no menu de atalho, a propriedade devolve null.

Atributos

Exemplos

O exemplo de código seguinte cria um gestor de eventos para o Popup evento do ContextMenu. O código no gestor de eventos determina qual dos dois controlos, um PictureBox nomeado pictureBox1 e um TextBox nomeado textBox1 , é o controlo que exibe o menu de atalho. Dependendo de qual controlo fez com que o ContextMenu apresente o menu de atalhos, o controlo adiciona os objetos apropriados MenuItem ao ContextMenu. Este exemplo exige que tenha uma instância da ContextMenu classe, chamada contextMenu1, definida dentro do formulário. Este exemplo também exige que tenha um TextBox e adicionado a uma forma e que a ContextMenu propriedade destes controlos seja definida para contextMenu1PictureBox .

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

Observações

Esta propriedade permite-lhe determinar qual o controlo que atualmente exibe o menu de atalho definido no ContextMenuarquivo . Se o menu de atalhos não estiver atualmente exibido, pode usar esta propriedade para determinar qual o último controlo que mostrou o menu de atalhos. Pode usar esta propriedade no Popup evento para garantir que o controlo apresenta os itens corretos do menu. Também pode usar esta propriedade para passar uma referência ao controlo para um método que executa as tarefas associadas a um comando de menu exibido no menu de atalho. Como a Form classe herda de Control, também pode usar esta propriedade se o ContextMenu estiver associado a uma forma.

Aplica-se a