Открыв меню при нажатии на NotifyIcon (VB.NET) - PullRequest
2 голосов
/ 30 октября 2009

Я хочу, чтобы в системном трее был NotifyIcon, который при нажатии открывает контекстное меню в NotifyIcon с несколькими опциями, открывающими разные формы.

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

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

Ответы [ 2 ]

1 голос
/ 30 октября 2009

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

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

ContextMenu cm; NotifyIcon ni;

публичная форма1 () { ni = новый 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;
}
1 голос
/ 30 октября 2009

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

...