Partage via


ContextMenu.SourceControl Propriété

Définition

Obtient le contrôle qui affiche le menu contextuel.

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

Valeur de propriété

Control représentant le contrôle qui affiche le menu contextuel. Si aucun contrôle n'a affiché le menu contextuel, la propriété retourne la valeur null.

Attributs

Exemples

L’exemple de code suivant crée un gestionnaire d’événements pour l’événement Popup de .ContextMenu Le code dans le gestionnaire d’événements détermine lequel des deux contrôles est un PictureBox nommé pictureBox1 et un TextBox nommé textBox1 est le contrôle affichant le menu contextuel. Selon le contrôle à l’origine de l’affichage ContextMenu de son menu contextuel, le contrôle ajoute les objets appropriés MenuItemContextMenuau . Cet exemple nécessite que vous ayez une instance de la ContextMenu classe, nommée contextMenu1, définie dans le formulaire. Cet exemple exige également que vous ayez un TextBox et PictureBox ajouté à un formulaire et que la ContextMenu propriété de ces contrôles soit définie sur 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

Remarques

Cette propriété vous permet de déterminer quel contrôle affiche actuellement le menu contextuel défini dans .ContextMenu Si le menu contextuel n’est pas affiché actuellement, vous pouvez utiliser cette propriété pour déterminer le dernier contrôle qui a affiché le menu contextuel. Vous pouvez utiliser cette propriété dans l’événement Popup pour vous assurer que le contrôle affiche les éléments de menu appropriés. Vous pouvez également utiliser cette propriété pour passer une référence au contrôle à une méthode qui effectue les tâches associées à une commande de menu affichée dans le menu contextuel. Étant donné que la Form classe hérite de Control, vous pouvez également utiliser cette propriété si est ContextMenu associé à un formulaire.

S’applique à