ContextMenu.SourceControl Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 fez com que o ContextMenu exibisse seu menu de atalho, o controle adiciona os objetos apropriados MenuItem ao ContextMenu. Este exemplo exige que você tenha uma instância da ContextMenu classe, chamada contextMenu1
, definida dentro do formulário. Este exemplo também requer que você tenha um TextBox e PictureBox adicionado a um formulário e que a ContextMenu propriedade desses controles seja definida contextMenu1
como .
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 que você determine qual controle exibe atualmente o menu de atalho definido no ContextMenu. Se o menu de atalho não for 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 de Control, você também poderá usar essa propriedade se o ContextMenu estiver associado a um formulário.