Partager 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é

Qui Control représente le contrôle qui affiche le menu contextuel. Si aucun contrôle n’a affiché le menu contextuel, la propriété retourne null.

Attributs

Exemples

L’exemple de code suivant crée un gestionnaire d’événements pour l’événement Popup du ContextMenu. Le code du gestionnaire d’événements détermine lequel de deux contrôles est PictureBox nommé pictureBox1 et nommé TextBoxtextBox1 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 MenuItem à l’objet ContextMenu. Cet exemple nécessite que vous ayez une instance de la ContextMenu classe, nommée contextMenu1, définie dans le formulaire. Cet exemple nécessite également que vous ayez un TextBox formulaire et PictureBox que la ContextMenu propriété de ces contrôles soit définie contextMenu1sur .

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 le ContextMenu. Si le menu contextuel n’est pas actuellement affiché, vous pouvez utiliser cette propriété pour déterminer quel contrôle a affiché le dernier affichage du 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 transmettre 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 elle ContextMenu est associée à un formulaire.

S’applique à