ContextMenu.Popup Evento
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.
Ocorre antes que o menu de atalho é exibido.
public:
event EventHandler ^ Popup;
public event EventHandler Popup;
member this.Popup : EventHandler
Public Custom Event Popup As EventHandler
Tipo de evento
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
Você pode usar esse evento para inicializar os MenuItem objetos antes que eles sejam exibidos. Por exemplo, se você usar um ContextMenu para três TextBox controles e quiser desabilitar determinados itens de menu no dependendo de ContextMenu qual TextBox está exibindo o menu de atalho, poderá criar um manipulador de eventos para esse evento. Você pode usar a SourceControl propriedade para determinar qual TextBox está prestes a exibir e ContextMenu desabilitar os objetos apropriados MenuItem .
Para obter mais informações sobre como lidar com eventos, consulte Manipulando e gerando eventos.