4

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

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 появляется.

1 ответ1

3

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

$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(....)
........

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .