如何在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
            }
        }
    }
})