共用方式為


HOW TO:將捷徑功能表與 Windows Form NotifyIcon 元件關聯

注意事項注意事項

雖然 MenuStripContextMenuStrip 會取代和加入功能至舊版的 MainMenuContextMenu 控制項,但是會保留 MainMenuContextMenu 以提供回溯相容性 (Backward Compatibility) 和未來使用 (如果您選擇要用)。

NotifyIcon 元件會在工作列的狀態告知區域中顯示圖示。 通常,應用程式允許您以滑鼠右鍵按一下這個圖示,將命令傳送至它所代表的應用程式。 您可將 ContextMenu 元件與 NotifyIcon 元件相關聯,藉此將這個功能加入至應用程式。

注意事項注意事項

如果您希望應用程式在啟動時最小化,同時在工具列中顯示 NotifyIcon 元件的執行個體,請將主要表單的 WindowState 屬性設定為 Minimized,並確定 NotifyIcon 元件的 Visible 屬性是設定為 true。

若要在設計階段將捷徑功能表與 NotifyIcon 元件相關聯

  1. NotifyIcon 元件加入至表單,並設定重要的屬性,例如 IconVisible 屬性。

    如需詳細資訊,請參閱 HOW TO:使用 Windows Form NotifyIcon 元件將應用程式圖示加入至 TaskBar

  2. ContextMenu 元件加入至 Windows Form。

    將功能表項目加入至捷徑功能表,此功能表代表您希望在執行階段可以使用的命令。 這也是將功能表增強功能加入至這些功能表項目 (如便捷鍵) 的好時機。

  3. NotifyIcon 元件的 ContextMenu 屬性設定為您加入的捷徑功能表。

    在設定這個屬性後,當使用者按一下工作列上的圖示時,就會顯示捷徑功能表。

若要以程式設計方式將捷徑功能表與 NotifyIcon 元件相關聯

  1. 建立 NotifyIcon 類別 (Class) 和 ContextMenu 類別的執行個體,使用應用程式需要的任何屬性設定 (NotifyIcon 元件的 IconVisible 屬性,以及 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 NotifyIcon notifyIcon1 = new NotifyIcon();
public ContextMenu contextMenu1 = new ContextMenu();

public void createIconMenuStructure()
{
   // Add menu items to shortcut menu.
   contextMenu1.get_MenuItems().Add("&Open Application");
   contextMenu1.get_MenuItems().Add("S&uspend Application");
   contextMenu1.get_MenuItems().Add("E&xit");

   // Set properties of NotifyIcon component.
   notifyIcon1.set_Icon(new System.Drawing.Icon
      (System.Environment.GetFolderPath
      (System.Environment.SpecialFolder.Personal)
      + "\\Icon.ico"));
   notifyIcon1.set_Text("Right-click me!");
   notifyIcon1.set_Visible(true);
   notifyIcon1.set_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;
   }
注意事項注意事項

您必須初始化 notifyIcon1 和 contextMenu1,,可藉由在表單的建構函式中加入下列陳述式的方式完成這項作業:

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

請參閱

工作

HOW TO:使用 Windows Form NotifyIcon 元件將應用程式圖示加入至 TaskBar

參考

NotifyIcon 元件概觀 (Windows Form)

NotifyIcon

Icon

其他資源

NotifyIcon 元件 (Windows Form)