ContextMenu.SourceControl Свойство

Определение

Возвращает элемент управления, отображающий контекстное меню.

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

Значение свойства

Объект Control, представляющий элемент управления, который отображает данное контекстное меню. Если контекстное меню не отображается ни одним элементом управления, свойство возвращает значение null.

Атрибуты

Примеры

В следующем примере кода создается обработчик событий для Popup события ContextMenuобъекта . Код в обработчике событий определяет, какой из двух элементов управления именованный PictureBoxpictureBox1 и именованный TextBoxtextBox1 является элементом управления, отображающим контекстное меню. В зависимости от того, какой элемент управления привел к отображению ContextMenu контекстного меню, элемент управления добавляет соответствующие MenuItem объекты в ContextMenu. В этом примере требуется, чтобы в форме был определен экземпляр ContextMenu класса с именем contextMenu1. В этом примере также требуется добавить TextBox и PictureBox в форму, а свойству ContextMenu этих элементов управления присвоено значение 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

Комментарии

Это свойство позволяет определить, какой элемент управления в настоящее время отображает контекстное меню, определенное ContextMenuв . Если контекстное меню в настоящее время не отображается, можно использовать это свойство, чтобы определить, какой элемент управления последний раз отображался в контекстном меню. Это свойство можно использовать в событии Popup , чтобы элемент управления отображал правильные пункты меню. Это свойство также можно использовать для передачи ссылки на элемент управления методу, который выполняет задачи, связанные с командой меню, отображаемой в контекстном меню. Form Так как класс наследуется от Control, это свойство также можно использовать, ContextMenu если объект связан с формой.

Применяется к