次の方法で共有


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 が使用可能で、入力フォーカスがあり、テキストが選択されているかどうかを判断します。ここでは、 menuCutmenuCopy 、および 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 ファミリ

参照

MenuItem クラス | MenuItem メンバ | System.Windows.Forms 名前空間