ContextMenu.SourceControl 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得顯示捷徑功能表的控制項。
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
,而 TextBox 具名 textBox1
是顯示快捷方式功能表的控制項。 根據造成 顯示 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 您也可以使用這個屬性。