Практическое руководство. Связывание контекстного меню с компонентом NotifyIcon в Windows Forms
Примечание
Хотя элементы управления MenuStrip и ContextMenuStrip заменяют элементы управления MainMenu и ContextMenu предыдущих версий и расширяют их функциональные возможности, при необходимости элементы управления MainMenu и ContextMenu можно сохранить для обратной совместимости и использования в будущем.
Компонент Windows Forms NotifyIcon позволяет отобразить один значок в области уведомления в панели задач. Как правило, щелкнув этот значок правой кнопкой мыши, можно передать необходимые команды в представляемое им приложение. Для сопоставления с этой функцией в приложении необходимо связать компонент ContextMenu с компонентом NotifyIcon.
Примечание
Если требуется, чтобы приложение запускалось в свернутом виде и при этом в панели задач появлялся экземпляр компонента NotifyIcon, необходимо присвоить значение Minimized свойству WindowState основной формы и убедиться, что свойство Visible компонента NotifyIcon имеет значение true.
Чтобы связать контекстное меню с компонентом NotifyIcon в режиме разработки
Добавьте в форму компонент Icon и задайте значения для основных свойств, таких как NotifyIcon и Visible.
Дополнительные сведения см. в разделе Практическое руководство. Добавление значков приложения на панель задач с помощью компонента NotifyIcon в Windows Forms.
Добавьте компонент ContextMenu в форму Windows Forms.
Добавьте в контекстное меню пункты, предоставляющие команды, которые должны быть доступны во время выполнения. Одновременно с этими пунктами меню можно также связать дополнительные возможности, такие как клавиши доступа.
Установите свойство ContextMenu компонента NotifyIcon контекстного меню.
Если после этого щелкнуть значок в панели задач, откроется соответствующее контекстное меню.
Чтобы связать контекстное меню с компонентом NotifyIcon программным способом
Создайте экземпляры компонентов NotifyIcon и ContextMenu с необходимыми для приложения параметрами свойств (свойств Icon и Visible для компонента NotifyIcon и свойств, определяющих пункты меню для компонента ContextMenu).
Установите свойство ContextMenu компонента NotifyIcon контекстного меню.
Если после этого щелкнуть значок в панели задач, откроется соответствующее контекстное меню.
Примечание
В следующем примере кода создается базовая структура меню.В нее необходимо будет подставить те пункты меню, которые требуются для разрабатываемого приложения.Кроме того, необходимо написать код для обработки событий 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();
См. также
Задачи
Ссылки
Общие сведения о компоненте NotifyIcon (Windows Forms)