ContextMenu.Popup イベント
ショートカット メニューが表示される前に発生します。
Public Event Popup As EventHandler
[C#]
public event EventHandler Popup;
[C++]
public: __event EventHandler* Popup;
[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。
イベント データ
イベント ハンドラが EventArgs 型の引数を受け取りました。
解説
このイベントを使用すると、 MenuItem オブジェクトが表示される前にそのオブジェクトを初期化できます。たとえば、ショートカット メニューを表示している TextBox に応じて、3 つの TextBox コントロールのうちの 1 つの ContextMenu を使用し、 ContextMenu 内に無効にするメニュー項目がある場合は、このイベントのイベント ハンドラを作成できます。 SourceControl プロパティを使用すると、どの TextBox で ContextMenu が表示されるのかを確認して、適切な MenuItem オブジェクトを無効にできます。
イベント処理の詳細については、「 イベントの利用 」を参照してください。
使用例
[Visual Basic, C#, C++] ContextMenu の Popup イベントのイベント ハンドラを作成する例を次に示します。このイベント ハンドラのコードは、ショートカット メニューを表示しているコントロールが pictureBox1
という名前の PictureBox コントロールと textBox1
という名前の TextBox コントロールのどちらであるかを判断します。どちらのコントロールが ContextMenu のショートカット メニューを表示したかに応じて、適切な MenuItem オブジェクトが ContextMenu に追加されます。この例は、フォーム内で定義されている contextMenu1
という名前の ContextMenu クラスのインスタンスが既にあることを前提にしています。この例は、 TextBox と PictureBox がフォームに追加され、これらのコントロールの ContextMenu プロパティが contextMenu1
に設定されていることも前提にしています。
Protected 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 'MyPopupEventHandler '
[C#]
protected 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);
}
}
[C++]
protected:
void MyPopupEventHandler(System::Object* /*sender*/, System::EventArgs* /*e*/)
{
// Define the MenuItem objects to display for the TextBox.
MenuItem* menuItem1 = new MenuItem(S"&Copy");
MenuItem* menuItem2 = new MenuItem(S"&Find and Replace");
// Define the MenuItem object to display for the PictureBox.
MenuItem* menuItem3 = new MenuItem(S"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);
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
ContextMenu クラス | ContextMenu メンバ | System.Windows.Forms 名前空間