C# 选项卡控件为空 Space 双击

C# Tab Control Empty Space Double Click

我正在编写 C# WinForm 应用程序。我有一个标签控件,我已经预设了所有功能,例如通过菜单添加新标签,双击标签删除。我现在的问题是,每次双击选项卡控件的空灰色 space 时,我都想创建一个选项卡。

我已经搜索了大约一个小时,我发现的很多内容都与 WPF 有关,我不想很快深入研究这些内容。所以我正在寻找适合我检测双击的方法的问题。我试过 double clickmouse double click 双击在选项卡上工作,鼠标双击也一样,除了它捕获鼠标事件参数。这样我就可以使用

e.Location

除了它仅在选项卡本身上提供该信息。任何人有任何建议来捕获标签本身之外的双击吗?我试过在 parents 中向上移动,例如鼠标双击 window 本身,尝试创建一个完全不透明的元素来处理点击,但我每次都碰壁了。

 private void Tabs_MouseDoubleClick(object sender, MouseEventArgs e)
 {
      //only works when double clicking tabs
      MessageBox.Show(e.Location.ToString());
 }

看来TabControl的部分对鼠标是透明的,所有的鼠标事件都会经过该部分,并被该部分后面的控件接收。

因此,作为解决方法,您可以将 TabControl 放在 Panel 中,并将 TabControlDock 属性 设置为 Fill ,以及 Panel 的句柄 DoubleClick 事件。您也可以选择鼠标挂钩,但我认为面板选项更简单。

控件的鼠标透明部分在下图中以红色显示。控制边界也是该区域的一部分。