ContextMenu.SourceControl 속성

정의

바로 가기 메뉴를 표시하는 컨트롤을 가져옵니다.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

속성 값

Control

바로 가기 메뉴를 표시하는 컨트롤을 나타내는 Control입니다.A Control that represents the control that is displaying the shortcut menu. 바로 가기 메뉴를 표시하는 컨트롤이 없으면 속성이 null을 반환합니다.If no control has displayed the shortcut menu, the property returns null.

특성

예제

다음 코드 예제에서는의 이벤트에 대 한 이벤트 처리기를 만듭니다 Popup ContextMenu .The following code example creates an event handler for the Popup event of the ContextMenu. 이벤트 처리기의 코드는 라는 두 컨트롤을 결정 PictureBox pictureBox1 하 고 TextBox 라는는 textBox1 바로 가기 메뉴를 표시 하는 컨트롤입니다.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. 에서 바로 가기 메뉴를 표시 하도록 하는 컨트롤에 따라 ContextMenu 컨트롤은에 적절 한 MenuItem 개체를 추가 ContextMenu 합니다.Depending on which control caused the ContextMenu to display its shortcut menu, the control adds the appropriate MenuItem objects to the ContextMenu. 이 예제를 사용 하려면 형식 내에 정의 된 클래스의 인스턴스가 있어야 합니다 ContextMenu contextMenu1 .This example requires that you have an instance of the ContextMenu class, named contextMenu1, defined within the form. 또한이 예제를 사용 하려면를 TextBox PictureBox 폼에 추가 하 고 ContextMenu 이러한 컨트롤의 속성이로 설정 되어 있어야 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

설명

이 속성을 사용 하면에 정의 된 바로 가기 메뉴를 현재 표시 하는 컨트롤을 확인할 수 있습니다 ContextMenu .This property enables you to determine which control currently displays the shortcut menu defined in the ContextMenu. 바로 가기 메뉴가 현재 표시 되지 않은 경우이 속성을 사용 하 여 바로 가기 메뉴를 마지막으로 표시 한 컨트롤을 확인할 수 있습니다.If the shortcut menu is not currently displayed, you can use this property to determine which control last displayed the shortcut menu. 이벤트에서이 속성을 사용 하 여 Popup 컨트롤이 적절 한 메뉴 항목을 표시 하는지 확인할 수 있습니다.You can use this property in the Popup event to ensure that the control displays the proper menu items. 이 속성을 사용 하 여 컨트롤에 대 한 참조를 바로 가기 메뉴에 표시 된 메뉴 명령과 관련 된 작업을 수행 하는 메서드에 전달할 수도 있습니다.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. 클래스는 Form 에서 상속 하므로 Control 이 폼에 연결 된 경우에도이 속성을 사용할 수 있습니다 ContextMenu .Since the Form class inherits from Control, you can also use this property if the ContextMenu is associated with a form.

적용 대상