cluelessentity Ответов: 2

Как включить щелчок для каждого пункта меню в контекстном меню в значке уведомления?


У меня есть следующие объекты: notifyIcon1 и contextMenuStrip1.
В свойствах contextMenuStrip1 в разделе Items я добавил два пункта меню Tool Strip:
tsMenuSubscribe 
и
tsMenuUnSubscribe
.
Я не могу найти щелчок даже для отдельного человека
Tool Strip Menu Items
.

Событие, которое я нашел, это
ontextMenuStrip1_ItemClicked
.
Это неверно, потому что это событие срабатывает независимо от щелчка по любому пункту меню Tool Strip.
Следовательно, мне нужна помощь в дифференциации кликов по отдельным
Tool Strip Menu Item
.

Что я уже пробовал:

In below example, I am trying to use the sub menu options that do not work.
 
<pre> private void tsMenuSubscribe_Clicked(object sender, ToolStripItemClickedEventArgs e)
        {
            NCTBuddy n = new NCTBuddy();
            n.ButtonText = "Subscribe";
            n.Show();
           
        }
        private void tsMenuUnSubscribe_Clicked(object sender, ToolStripItemClickedEventArgs e)
        {
            NCTBuddy n = new NCTBuddy();
            n.ButtonText = "UnSubscribe";
            n.Show();
        }


And finally, this is the event that works but do not differentiate which item is clicked in the menu.

        private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
         
        }

2 Ответов

Рейтинг:
5

cluelessentity

Решение состоит в том, чтобы упомянуть события в форме load:

tsMenuSubscribe.Click += tsMenuSubscribeClick;
           tsMenuUnsubscribe.Click += tsMenuUnSubscribeClick;


И опишите их в любом месте кода:

private void tsMenuSubscribeClick(object sender, EventArgs e)
       {

           NCTBuddy n = new NCTBuddy();
           n.ButtonText = "Subscribe";
           n.Show();

       }
       private void tsMenuUnSubscribeClick(object sender, EventArgs e)
       {
           NCTBuddy n = new NCTBuddy();
           n.ButtonText = "UnSubscribe";
           n.Show();

       }


Рейтинг:
1

Karthik_Mahalingam

в режиме дизайна- & gt; щелкните правой кнопкой мыши на tsMenuSubscribe пункт - > properties -> events - > click event (двойной щелчок )


cluelessentity

@Картик
Спасибо за ваш комментарий. Но все не так просто.
Это меню не похоже на обычное меню. Он растет под контекстным меню, связанным с уведомлением.
Это означает, что в нижней правой части экрана, прямо рядом с индикатором заряда батареи любого ноутбука windows, рядом с часами у меня есть мой NotifyIcon. Когда я щелкаю Правой Кнопкой Мыши, он дает два пункта меню здесь.

Karthik_Mahalingam

ОК, сделав это тоже, он работает, щелкнув правой кнопкой мыши значок notifiy и щелкнув элемент menustrip, он перешел к событию.

cluelessentity

@Картик,

Нет никакого щелчка правой кнопкой мыши, который я могу сделать в пункте меню Tool Strip.
Как у нас есть коллекции в поле со списком, так и у меня есть пункты меню Tool Strip в ContextMenuStrip. Итак, когда я выбираю - щелкните правой кнопкой мыши на ContextMenuStrip, есть свойство под названием Items. Когда я нажимаю на (коллекции) для свойства Items, в это время я могу добавить столько пунктов меню Tool Strip, сколько захочу, но щелчка правой кнопкой мыши на них нет. И никаких событий на них.

Karthik_Mahalingam

Итак,вы хотите щелкнуть правой кнопкой мыши по элементам menustrip?
я не понимаю ясно, если бы вы могли опубликовать скриншот, было бы лучше
imgur.com

cluelessentity

Ноп.
Я могу щелкнуть правой кнопкой мыши на contextMenuStrip.
Я хочу нажать на элементы в разделе contextMenuStrip, которые называются пунктами меню Tool Strip. И мне нужно спровоцировать событие и сделать что-то в этом случае, когда эти элементы будут нажаты.

Karthik_Mahalingam

вам нужно будет сопоставить событие click с каждым элементом в элементах меню tool strip, о которых я уже упоминал в решении.

Karthik_Mahalingam

Проверить это
http://oi64.tinypic.com/2gy1qtj.jpg