次の方法で共有


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

手記

MenuStripContextMenuStrip は、以前のバージョンの MainMenu コントロールと ContextMenu コントロールに機能を置き換えて追加しますが、下位互換性と将来の使用の両方を選択した場合、MainMenuContextMenu は保持されます。

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

手記

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

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

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

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

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

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

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

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

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

  1. アプリケーションに必要なプロパティ設定 (NotifyIcon コンポーネントのIcon プロパティと Visible プロパティ、ContextMenu コンポーネントのメニュー項目) を使用して、NotifyIcon クラスと 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();  

関連項目