次の方法で共有


詳細情報 : メニューの詳細

更新 : 2007 年 11 月

このレッスンでは、実行時にメニューを有効または無効にする方法と、ショートカット メニューを作成する方法を説明します。

前のレッスンでは、MenuStrip コントロールを使用して、ユーザーがプログラムに関する選択をすることができるメニューの作成方法を説明しました。しかし、特定の状況でしか項目を選択できない場合があります。たとえば、[コピー] メニュー コマンドは、コピーできる対象がある場合にのみ使用できます。

ほとんどのプログラムでは、メニュー コマンドを使用できない場合、それを非表示にするのではなく無効にします。メニュー項目が無効になると、メニュー テキストの色が灰色に変わり、そのメニュー項目をクリックしても何も起こらなくなります。MenuStrip コントロールを使用するときに、MenuItemEnabled プロパティを使用すると、メニュー項目を有効または無効にできます。

やってみよう

メニュー項目を無効または有効にするには

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスの [テンプレート] ペインで、[Windows フォーム アプリケーション] をクリックします。

  3. [プロジェクト名] ボックスに「Menus2」と入力し、[OK] をクリックします。

    新しい Windows フォーム プロジェクトが開きます。

  4. ツールボックスから、フォームに MenuStrip コントロールと TextBox コントロールをドラッグします。

  5. フォームで、MenuStrip コントロールをクリックして「Edit」と入力し、Enter キーを押します。

  6. 最初のボックスの下にあるボックスに「Copy」と入力し、Enter キーを押します。

  7. [プロパティ] ウィンドウで、copyToolStripMenuItem の Enabled プロパティを False に設定します。

  8. TextBox コントロールをダブルクリックしてコード エディタを開きます。

  9. TextBox1_TextChanged イベント ハンドラに次のコードを追加します。

    If Textbox1.Text <> "" Then
      CopyToolStripMenuItem.Enabled = True
    Else
      CopyToolStripMenuItem.Enabled = False
    End If
    
  10. F5 キーを押してプログラムを実行します。[編集] メニューをクリックします。[コピー] メニュー項目が無効になっています。TextBox コントロールにテキストを入力し、[編集] メニューをクリックします。今度は [コピー] メニュー項目が有効になっています。

ショートカット メニューの作成

多くのプログラムでは、ショートカット メニュー (コンテキスト メニューとも呼ばれる) を使用して、使用頻度の高いコマンドに簡単にアクセスできるようになっています。コンテキスト メニューは、実行時にフォームまたはコントロールを右クリックすると表示されます。Visual Basic で独自のコンテキスト メニューを作成するには、ContextMenuStrip コントロールを使用します。

MenuStrip コントロールと同様、ContextMenuStrip コントロールをフォーム上にドラッグすると、内側に "ここへ入力" という単語が表示されたボックスの形で ContextMenuStrip コントロールがフォームの上部に表示され、コンポーネント トレイにアイコンが追加されます。ただし、MenuStrip と異なり、追加のメニュー項目を作成できるのは、最初のメニュー項目の下のみです。これにより、縦方向のメニューが作成されます。

さらに、ContextMenuStrip は、表示するフォームまたはコントロールと関連付ける必要があります。これには、フォームまたはコントロールの ContextMenuStrip プロパティを、ContextMenuStrip コントロールの名前に設定します。1 つの ContextMenuStrip に関連付けることができるコントロールの数に、制限はありません。

やってみよう

コンテキスト メニューを作成するには

  1. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスの [テンプレート] ペインで、[Windows フォーム アプリケーション] をクリックします。

  3. [プロジェクト名] ボックスに「ContextMenus」と入力し、[OK] をクリックします。

    新しい Windows フォーム プロジェクトが開きます。

  4. ツールボックスから、フォームに ContextMenuStrip コントロールをドラッグします。

  5. デザイン ビューでフォームをクリックします。[プロパティ] ウィンドウで、フォームの ContextMenuStrip プロパティをクリックし、ドロップダウン リストの [ContextMenuStrip1] をクリックします。

  6. 統合開発環境 (IDE: Integrated Development Environment) の下部にあるコンポーネント トレイで、ContextMenuStrip コントロールをクリックします。ContextMenuStrip で、「Option1」と入力し、Enter キーを押します。

  7. 最初のボックスの下にあるボックスに「Option2」と入力し、Enter キーを押します。

  8. [option1] メニュー項目をダブルクリックしてコード エディタを開きます。

  9. Option1ToolStripMenuItem_Click イベント ハンドラに次のコードを追加します。

    MsgBox("You chose Option 1")
    
  10. コード エディタで、左側のドロップダウン ボックスの [Option2ToolStripMenuItem] をクリックし、右側のドロップダウン ボックスの [Click] をクリックします。

    Option2ToolStripMenuItem _Click という新しいイベント ハンドラがコード エディタに表示されます。

  11. Option2ToolStripMenuItem _Click イベント ハンドラに次のコードを入力します。

    MsgBox("You chose Option 2")
    
  12. F5 キーを押してプログラムを実行します。フォームを右クリックしてコンテキスト メニューのいずれかの項目をクリックします。クリックした選択項目を示すメッセージ ボックスが表示されます。

次の手順

このレッスンでは、メニューを有効および無効にする方法と、コンテキスト メニューを作成する方法を説明しました。次のトピックでは、異なる種類のコントロール (Timer) を使用して処理を実行する方法を説明します。

次のレッスン : 「スケジュールの設定 : タイマを使用して定期的に処理を実行する

参照

処理手順

ユーザーへの選択肢の提示 : デザイン時にメニューを作成する

方法 : ContextMenuStrip をコントロールに関連付ける

参照

MenuStrip コントロールの概要 (Windows フォーム)