ContextMenu.SourceControl Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene el control que muestra el menú contextual.
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 propiedad
Control que representa el control que muestra el menú contextual. Si ningún control ha mostrado el menú contextual, la propiedad devuelve null
.
- Atributos
Ejemplos
En el ejemplo de código siguiente se crea un controlador de eventos para el Popup evento de ContextMenu. El código del controlador de eventos determina cuál de dos controles un PictureBox denominado y un TextBox con nombre textBox1
pictureBox1
es el control que muestra el menú contextual. Dependiendo del control que provocó que ContextMenu mostrara su menú contextual, el control agrega los objetos adecuados MenuItem a .ContextMenu Este ejemplo requiere que tenga una instancia de la ContextMenu clase , denominada contextMenu1
, definida dentro del formulario. En este ejemplo también se requiere que tenga un TextBox y PictureBox agregado a un formulario y que la ContextMenu propiedad de estos controles esté establecida en 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
Comentarios
Esta propiedad permite determinar qué control muestra actualmente el menú contextual definido en .ContextMenu Si el menú contextual no se muestra actualmente, puede usar esta propiedad para determinar qué control mostró por última vez el menú contextual. Puede usar esta propiedad en el Popup evento para asegurarse de que el control muestra los elementos de menú adecuados. También puede usar esta propiedad para pasar una referencia al control a un método que realiza las tareas asociadas a un comando de menú que se muestra en el menú contextual. Puesto que la Form clase hereda de Control, también puede usar esta propiedad si ContextMenu está asociado a un formulario.