Графические интерфейсы Powershell (.NET формы), событие правой кнопкой мыши на кнопке

1977
root

Как можно зафиксировать события щелчка правой кнопкой мыши на кнопке? Я хотел бы выполнить некоторые действия, когда кнопка получает щелчок правой кнопкой мыши. Ниже приведен пример формы:

Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Drawing  $form = New-Object System.Windows.Forms.Form $form.Size = New-Object System.Drawing.Size(400,400) $form.StartPosition = "CenterScreen"  $button01 = New-Object System.Windows.Forms.Button $button01.Location = New-Object System.Drawing.Size(100,100) $button01.Size = New-Object System.Drawing.Size(100,100) $button01.Text = "button01" $button01.Add_Click({[System.Windows.MessageBox]::Show("Left click")})  $form.Controls.Add($button01)  $form.ShowDialog() | Out-Null 

Прочитав некоторую документацию, я добавил это ниже $button01.Add_Clickстроки:

$button01_MouseDown=[System.Windows.Forms.MouseEventHandler]{ $_ = [System.Windows.Forms.MouseEventArgs] [System.Windows.MessageBox]::Show("$_.Button") } 

Когда я щелкаю правой кнопкой мыши по кнопке, ничего не MessageBoxпоявляется.

4

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

3
Mihail Kuznesov

Вы можете сделать это так:

$button01.Add_MouseUP( { if ($_.Button -eq [System.Windows.Forms.MouseButtons]::Right ) { [System.Windows.MessageBox]::Show("Rigth mouse up")} }) 

Или вы можете использовать

$button01.Add_MouseDown(....) 

Вы можете найти все поддерживаемые события класса Button здесь: https://msdn.microsoft.com/en-us/library/system.windows.forms.button(v=vs.110).aspx

и вы можете использовать его в этом стиле:

$button01.Add_AutoSizeChanged(....) $button01.Add_BackColorChanged(....) $button01.Add_BackgroundImageChanged(....) ........ 
Ты это пробовал? Это не сработало, когда я попробовал (но мой синтаксис был немного другим). harrymc 6 лет назад 0
Да, добавить мой код в оригинальный скрипт после $ button01.add_click (...), и он покажет другое окно сообщения для щелчка левой кнопкой мыши и для щелчка правой кнопкой мыши. Mihail Kuznesov 6 лет назад 1

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