次の方法で共有


方法: ショートカット メニューを Windows フォーム NotifyIcon コンポーネントに関連付ける

注意

MenuStripContextMenuStrip によって、以前のバージョンの MainMenu コントロールと ContextMenu コントロールの機能が置換または追加されていますが、下位互換性を維持し、今後必要に応じて使用できるように、MainMenuContextMenu が保持されています。

NotifyIcon コンポーネントにより、タスクバーの状態通知領域にアイコンが表示されます。 一般的に、アプリケーションでは、このアイコンを右クリックして、それが表すアプリケーションにコマンドを送信することができます。 ContextMenu コンポーネントを NotifyIcon コンポーネントに関連付けることによって、この機能をアプリケーションに追加できます。

注意

タスクバーの NotifyIcon コンポーネントのインスタンスを表示しつつ、起動時にアプリケーションを最小化する必要がある場合は、メイン フォームの WindowState プロパティを Minimized に設定し、NotifyIcon コンポーネントの Visible プロパティが true に設定されていることを確認します。

デザイン時にショートカット メニューを NotifyIcon コンポーネントに関連付けるには

  1. NotifyIcon コンポーネントをフォームに追加し、Icon プロパティや Visible プロパティなどの重要なプロパティを設定します。

    詳細については、「方法: Windows フォームの NotifyIcon コンポーネントによってタスクバーにアプリケーション アイコンを追加する」を参照してください。

  2. Windows フォームに ContextMenu コンポーネントを追加します。

    実行時に使用できるようにするコマンドを表すメニュー項目を、ショートカット メニューに追加します。 これは、アクセス キーなどのメニュー項目にメニューの拡張機能を追加する場合にも適しています。

  3. NotifyIcon コンポーネントの ContextMenu プロパティを、追加したショートカット メニューに設定します。

    このプロパティを設定すると、タスクバーのアイコンがクリックされたときにショートカット メニューが表示されます。

プログラムを使用してショートカット メニューを NotifyIcon コンポーネントに関連付けるには

  1. NotifyIcon クラスと ContextMenu クラスのインスタンスを、そのアプリケーションに必要なあらゆるプロパティ設定 (NotifyIcon コンポーネントには Icon プロパティと Visible プロパティ、ContextMenu にはメニュー項目) と共に作成します。

  2. NotifyIcon コンポーネントの ContextMenu プロパティを、追加したショートカット メニューに設定します。

    このプロパティを設定すると、タスクバーのアイコンがクリックされたときにショートカット メニューが表示されます。

    注意

    次のコード例では、基本的なメニュー構造を作成します。 メニューの選択肢は、開発中のアプリケーションに適したものにカスタマイズする必要があります。 また、これらのメニュー項目の Click イベントを処理するコードを記述する必要があります。

    Public ContextMenu1 As New ContextMenu  
    Public NotifyIcon1 As New NotifyIcon  
    
    Public Sub CreateIconMenuStructure()  
       ' Add menu items to shortcut menu.  
       ContextMenu1.MenuItems.Add("&Open Application")  
       ContextMenu1.MenuItems.Add("S&uspend Application")  
       ContextMenu1.MenuItems.Add("E&xit")  
    
       ' Set properties of NotifyIcon component.  
       NotifyIcon1.Icon = New System.Drawing.Icon _
          (System.Environment.GetFolderPath _
          (System.Environment.SpecialFolder.Personal)  _
          & "\Icon.ico")  
       NotifyIcon1.Text = "Right-click me!"  
       NotifyIcon1.Visible = True  
       NotifyIcon1.ContextMenu = ContextMenu1  
    End Sub  
    
public NotifyIcon notifyIcon1 = new NotifyIcon();  
public ContextMenu contextMenu1 = new ContextMenu();  
  
public void createIconMenuStructure()  
{  
   // Add menu items to shortcut menu.  
   contextMenu1.MenuItems.Add("&Open Application");  
   contextMenu1.MenuItems.Add("S&uspend Application");  
   contextMenu1.MenuItems.Add("E&xit");  
  
   // Set properties of NotifyIcon component.  
   notifyIcon1.Icon = new System.Drawing.Icon  
      (System.Environment.GetFolderPath  
      (System.Environment.SpecialFolder.Personal)  
      + @"\Icon.ico");  
   notifyIcon1.Visible = true;  
   notifyIcon1.Text = "Right-click me!";  
   notifyIcon1.Visible = true;  
   notifyIcon1.ContextMenu = contextMenu1;  
}  
public:  
   System::Windows::Forms::NotifyIcon ^ notifyIcon1;  
   System::Windows::Forms::ContextMenu ^ contextMenu1;  
  
   void createIconMenuStructure()  
   {  
      // Add menu items to shortcut menu.  
      contextMenu1->MenuItems->Add("&Open Application");  
      contextMenu1->MenuItems->Add("S&uspend Application");  
      contextMenu1->MenuItems->Add("E&xit");  
  
      // Set properties of NotifyIcon component.  
      notifyIcon1->Icon = gcnew System::Drawing::Icon  
          (String::Concat(System::Environment::GetFolderPath  
          (System::Environment::SpecialFolder::Personal),  
          "\\Icon.ico"));  
      notifyIcon1->Text = "Right-click me!";  
      notifyIcon1->Visible = true;  
      notifyIcon1->ContextMenu = contextMenu1;  
   }  

注意

notifyIcon1contextMenu1, を初期化する必要があります。これを行うには、フォームのコンストラクターに次のステートメントを追加します。

notifyIcon1 = gcnew System::Windows::Forms::NotifyIcon();  
contextMenu1 = gcnew System::Windows::Forms::ContextMenu();  

関連項目