2009-10-30 4 views
2

Я хочу иметь NotifyIcon в системном трее, который при щелчке открывает контекстное меню NotifyIcon с несколькими вариантами, открывающими разные формы.Открыв меню, когда вы нажмете на NotifyIcon (VB.NET)

Я прочитал мне нужно использовать ContextMenu и после Google'ing и пробуя различные код, который я не могу заставить его работать:/

Любая помощь по этому вопросу значительно appreicated.

+0

Какая часть не работает? Отображение контекстного меню или открытие форм из элементов контекстного меню? –

+0

Извините, должен был быть более конкретным. Все контекстное меню не загружается. Я не могу понять, как это сделать. – Whitey

+1

Вы уже пробовали делать пример, упомянутый здесь? : http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx – Naveen

ответ

1

Вы уже разработали свой ContextMenu в дизайнере форм? Если вы этого не сделали, это первый шаг. Создайте новый ContextMenu (просто дважды щелкнув его в панели инструментов слева) и добавьте к нему все элементы меню. Затем вы можете дважды щелкнуть по каждому элементу, который будет помещен в пустой обработчик события .Click, в который вы поместите вызов formname.Show(). Вам также нужно будет добавить NotifyIcon в конструктор форм, и когда вы отредактируете свойства для него, появится свойство «Контекстное меню», в котором вы укажете имя вышеуказанного ContextMenu. Если вы хотите, чтобы значок был видимым все время, вы можете просто установить для свойства Visible значение True. Контекстное меню

1

Добавить к вашему для (если есть форма) или объявить экземпляр контекстного меню:

Вот краткий пример:

Контекстных см; NotifyIcon ni;

общественный Форма1() { ni = new NotifyIcon(); ni.BalloonTipIcon = ToolTipIcon.Info;

cm = new ContextMenu(); 

    cm.MenuItems.Add(new MenuItem("Hello", delegate(object sender, EventArgs e) 
    { 
     MessageBox.Show(DateTime.Now.ToString("dd/MMM/yyyy hh:mm:ss tt")); 
    })); 

    cm.MenuItems.Add(new MenuItem("Exit", delegate(object sender, EventArgs e) 
    { 
     ni.Visible = false; 
     ni.Dispose(); 
     Application.Exit(); 
    })); 

    ni.ContextMenu = cm; 

    ni.Visible = true; 
    ni.Icon = this.Icon; 
} 
Смежные вопросы