如何捕获按钮上发生的右键单击事件?我想在按钮收到右键单击时执行一些操作。以下是示例表单:
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
你可以这样做:
$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(....)
........