如何在powershell中使用winforms右键单击选项卡时捕获事件
how to capture event when right clicking on tab using winforms in powershell
我想在右键单击选项卡时触发一个事件,不是选项卡显示的内容,而是 tabs 本身。
到目前为止,我已尝试使用选项卡控件的选定事件:
$maintab.add_selected({do something here})
只有在左键单击选项卡时才会触发
我也尝试了所有这些,它们似乎没有响应在 tabcontrol 或 tabpages 中的任何地方点击
$maintab.add_mouseUP({do something here})
$maintab.add_mouseDown({do something here})
$maintab.add_click({do something here})
$maintab.add_selecting({do something here})
我还尝试为已添加到 tabcontrol 的标签页捕获 mouseUP 事件:
$tabpage.add_mouseUp({do something here})
这仅在单击选项卡下方的内容区域时有效,而不是选项卡本身。
这可能吗?
我认为您在 maintab 控件上使用 MouseUP
事件是正确的。
下面向您展示了如何检测点击了哪些标签:
$maintab.Add_mouseUP({
param($sender,$e)
if ($e.Button -eq [System.Windows.Forms.MouseButtons]::Right) {
# this part checks if on of the actual tabs is right-clicked
for ($i = 0; $i -lt $this.TabCount; $i++) {
if ($this.GetTabRect($i).Contains($e.Location)) {
# do something here
Write-Host "Right-click on tab $($this.TabPages[$i].Text)"
break
}
}
}
})
我想在右键单击选项卡时触发一个事件,不是选项卡显示的内容,而是 tabs 本身。
到目前为止,我已尝试使用选项卡控件的选定事件:
$maintab.add_selected({do something here})
只有在左键单击选项卡时才会触发
我也尝试了所有这些,它们似乎没有响应在 tabcontrol 或 tabpages 中的任何地方点击
$maintab.add_mouseUP({do something here})
$maintab.add_mouseDown({do something here})
$maintab.add_click({do something here})
$maintab.add_selecting({do something here})
我还尝试为已添加到 tabcontrol 的标签页捕获 mouseUP 事件:
$tabpage.add_mouseUp({do something here})
这仅在单击选项卡下方的内容区域时有效,而不是选项卡本身。
这可能吗?
我认为您在 maintab 控件上使用 MouseUP
事件是正确的。
下面向您展示了如何检测点击了哪些标签:
$maintab.Add_mouseUP({
param($sender,$e)
if ($e.Button -eq [System.Windows.Forms.MouseButtons]::Right) {
# this part checks if on of the actual tabs is right-clicked
for ($i = 0; $i -lt $this.TabCount; $i++) {
if ($this.GetTabRect($i).Contains($e.Location)) {
# do something here
Write-Host "Right-click on tab $($this.TabPages[$i].Text)"
break
}
}
}
})