ContextMenu.SourceControl Propiedad

Definición

Obtiene el control que muestra el menú contextual.Gets the control that is displaying the shortcut menu.

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

Control que representa el control que muestra el menú contextual.A Control that represents the control that is displaying the shortcut menu. Si ningún control ha mostrado el menú contextual, la propiedad devuelve null.If no control has displayed the shortcut menu, the property returns null.

Atributos

Ejemplos

En el ejemplo de código siguiente se crea un controlador de eventos para el Popup evento de ContextMenu .The following code example creates an event handler for the Popup event of the ContextMenu. El código del controlador de eventos determina cuál de los dos controles con un PictureBox nombre pictureBox1 y un TextBox nombre textBox1 es el control que muestra el menú contextual.The code in the event handler determines which of two controls a PictureBox named pictureBox1 and a TextBox named textBox1 is the control displaying the shortcut menu. Dependiendo del control que haya provocado que ContextMenu muestre el menú contextual, el control agrega los MenuItem objetos correspondientes a ContextMenu .Depending on which control caused the ContextMenu to display its shortcut menu, the control adds the appropriate MenuItem objects to the ContextMenu. Este ejemplo requiere que tenga una instancia de la ContextMenu clase, denominada contextMenu1 , definida dentro del formulario.This example requires that you have an instance of the ContextMenu class, named contextMenu1, defined within the form. En este ejemplo también es necesario que tenga un y que se TextBox PictureBox agregue a un formulario y que la ContextMenu propiedad de estos controles esté establecida en contextMenu1 .This example also requires that you have a TextBox and PictureBox added to a form and that the ContextMenu property of these controls is set to 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 le permite determinar qué control muestra actualmente el menú contextual definido en ContextMenu .This property enables you to determine which control currently displays the shortcut menu defined in the ContextMenu. Si el menú contextual no se muestra actualmente, puede usar esta propiedad para determinar en qué control se mostró el menú contextual por última vez.If the shortcut menu is not currently displayed, you can use this property to determine which control last displayed the shortcut menu. Puede usar esta propiedad en el Popup evento para asegurarse de que el control muestra los elementos de menú correspondientes.You can use this property in the Popup event to ensure that the control displays the proper menu items. También puede utilizar 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.You can also use this property to pass a reference to the control to a method that performs the tasks associated with a menu command displayed in the shortcut menu. Dado que la Form clase hereda de Control , también puede utilizar esta propiedad si ContextMenu está asociada a un formulario.Since the Form class inherits from Control, you can also use this property if the ContextMenu is associated with a form.

Se aplica a