PowerShell Winforms контекстное меню

399
nixgeek

Из раздела Как добавить параметры в контекстное меню мыши в формах PowerShell выполните следующие действия.

$contextMenuStrip1.Items.Add("Item 1") | Out-Null $contextMenuStrip1.Items.Add("Item 2") | Out-Null 

И это работает ... Я вижу контекстное меню ... но как мне сделать что-то, когда пункт меню был выбран.

Например, если пользователь выбирает элемент 1, как узнать, что он был выбран.

0
Добавьте обработчик событий. DavidPostill 5 лет назад 0
Это полезно для новичка / нуба, как я. nixgeek 5 лет назад 0

2 ответа на вопрос

0
postanote

Как подсказывает руководство DavidPostill ... Там множество видео, статей и примеров кода, которые рассказывают о подобных вещах, шаг за шагом. Для вашего запроса, вот пример того, что говорит DavidPostill.

$textBox1.Add_Click( {  [System.Windows.Forms.MessageBox]::Show("Hello World.", "My Dialog Box") } )  $form1.ShowDialog() 

См. Https://social.technet.microsoft.com/wiki/contents/articles/25911.how-to-add-a-powershell-gui-event-handler-part-1.aspx

Хорошо, я могу следовать за этим для текстового поля. Но то же самое относится к объекту contextmenustrip1? Так как же определить, какой пункт меню был выбран? это как-то пронумеровано? я хотел бы добавить что-то вроде $ contextMenuStrip1.Add_Click? nixgeek 5 лет назад 0
@nixgeek Прежде чем бегать, нужно научиться ходить. Изучите основы, прежде чем пытаться изменить случайные биты кода, которые вы нашли в Интернете. DavidPostill 5 лет назад 0
Хорошо, я понял, как это сделать ... Вместо того, чтобы просто добавлять контекстные меню. Я также добавил, как Дэвид указал на обработчик событий. Я заменил: $ contextMenuStrip1.Items.Add ("Элемент 1") | Out-Null $ contextMenuStrip1.Items.Add ("Элемент 2") | Out-Null С этим: $ contextMenuStrip1.Items.Add ("Item1", $ ContextMenuStripItemImages) .add_Click () $ contextMenuStrip1.Items.Add ("Item2", $ ContextMenuStripItemImages) .add_Click (% clipboard% CTRL-Q отправляет содержимое клавиатуры в качестве ввода (аналогично его вводу) nixgeek 5 лет назад 0
0
nixgeek

Хорошо, я понял, как это сделать ... Вместо того, чтобы просто добавлять контекстные меню. Я также добавил, как Дэвид указал на обработчик событий.

Я заменил:

 $contextMenuStrip1.Items.Add("Item 1") | Out-Null $contextMenuStrip1.Items.Add("Item 2") | Out-Null 

С этим:

 $contextMenuStrip1.Items.Add("Item1", $ContextMenuStripItemImages).add_Click({ MyCode Here }) $contextMenuStrip1.Items.Add("Item2", $ContextMenuStripItemImages).add_Click({ MyCode Here }) 

Отлично работает сейчас.

Похожие вопросы