MenuItem.Popup イベント
メニュー項目のリストが表示される前に発生します。
Public Event Popup As EventHandler
[C#]
public event EventHandler Popup;
[C++]
public: __event EventHandler* Popup;
[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。
イベント データ
イベント ハンドラが EventArgs 型の引数を受け取りました。
解説
このイベントは、メニュー項目に表示するサブメニュー項目があるときだけ発生します。このイベント ハンドラを使用すると、メニュー項目が表示される前に、アプリケーションの状態に基づいて、そのメニュー項目を追加、削除、有効化、無効化したり、そのメニュー項目のチェック ボックスをオンまたはオフにしたりできます。イベント処理の詳細については、「 イベントの利用 」を参照してください。
使用例
[Visual Basic, C#, C++] Popup イベントを使用して、メニューが表示される前に MenuItem オブジェクトが、切り取り、コピー、削除の操作を使用できるかどうかを判断する方法を次の例に示します。この例では、 MenuItem オブジェクトが使用できるようになる前に、フォーム上の TextBox コントロールの textBox1
が使用可能で、入力フォーカスがあり、テキストが選択されているかどうかを判断します。ここでは、 menuCut
、 menuCopy
、および menuDelete
という名前の 3 つの MenuItem オブジェクトが作成されていることを前提としています。
Private Sub PopupMyMenu(ByVal sender As Object, ByVal e As System.EventArgs) Handles menuEdit.Popup
If textBox1.Enabled = False OrElse textBox1.Focused = False OrElse textBox1.SelectedText.Length = 0 Then
menuCut.Enabled = False
menuCopy.Enabled = False
menuDelete.Enabled = False
Else
menuCut.Enabled = True
menuCopy.Enabled = True
menuDelete.Enabled = True
End If
End Sub
[C#]
private void PopupMyMenu(object sender, System.EventArgs e)
{
if (textBox1.Enabled == false || textBox1.Focused == false ||
textBox1.SelectedText.Length == 0)
{
menuCut.Enabled = false;
menuCopy.Enabled = false;
menuDelete.Enabled = false;
}
else
{
menuCut.Enabled = true;
menuCopy.Enabled = true;
menuDelete.Enabled = true;
}
}
[C++]
private:
void PopupMyMenu(Object* /*sender*/, System::EventArgs* /*e*/)
{
if (textBox1->Enabled == false || textBox1->Focused == false ||
textBox1->SelectedText->Length == 0)
{
menuCut->Enabled = false;
menuCopy->Enabled = false;
menuDelete->Enabled = false;
}
else
{
menuCut->Enabled = true;
menuCopy->Enabled = true;
menuDelete->Enabled = true;
}
}
[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 ファミリ