C#选项卡控件空白双击

C#选项卡控件空白双击,c#,.net,winforms,tabcontrol,C#,.net,Winforms,Tabcontrol,我正在写一个C#WinForm应用程序。我有一个选项卡控件,我已经预设了所有功能,例如按菜单添加新选项卡,双击要删除的选项卡。我现在的问题是,每次双击tab控件的空白灰色区域时,我都想创建一个选项卡 我已经搜索了大约一个小时了,我发现很多都是关于WPF的,我不想在短期内深入研究这些。所以我正在寻找一种适合我检测双击的方法。我已经尝试了双击和鼠标双击双击在选项卡上工作,而鼠标双击除了捕获鼠标事件参数外,做了相同的工作。这样我就可以使用 e.Location 但它只提供选项卡本身的信息。有人有什么建

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

我已经搜索了大约一个小时了,我发现很多都是关于WPF的,我不想在短期内深入研究这些。所以我正在寻找一种适合我检测双击的方法。我已经尝试了
双击
鼠标双击
双击在选项卡上工作,而鼠标双击除了捕获鼠标事件参数外,做了相同的工作。这样我就可以使用

e.Location

但它只提供选项卡本身的信息。有人有什么建议来捕捉标签外的双击吗?我曾经尝试过在父母中使用鼠标双击窗口本身,尝试过创建一个完全不透明的元素来处理点击,但是每次我都会碰到砖墙

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

似乎
TabControl
的一部分对鼠标是透明的,所有鼠标事件都通过该部分,并将由该部分后面的控件接收

因此,作为一种解决方法,您可以将
TabControl
放在
面板中,并将
TabControl
Dock
属性设置为
Fill
,以及
面板的句柄
双击
事件。您还可以选择鼠标挂钩,但我相信面板选项更简单

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


似乎
TabControl
的一部分对鼠标是透明的,所有鼠标事件都通过该部分,并将由该部分后面的控件接收

因此,作为一种解决方法,您可以将
TabControl
放在
面板中,并将
TabControl
Dock
属性设置为
Fill
,以及
面板的句柄
双击
事件。您还可以选择鼠标挂钩,但我相信面板选项更简单

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


我不知道该怎么做,但我知道这两种双击动作对我来说都不是直观的。向选项卡添加一个X,向选项卡控件添加一个+-页,这是标准的用户期望值。-Lol:刚才注意到,看一看完全相同的反应,或者看起来该部分对鼠标是透明的,所有鼠标事件都通过该部分,并将由该部分后面的控件接收。因此,作为一种解决方法,您可以将
TabControl
放在
面板中,并将
TabControl
Dock
属性设置为true,以及
Panel
的句柄
双击事件。老实说,我不认为这是行业标准。有些应用程序可能会这样做,但我知道NP++有一个双击操作,我将尝试Reza Aghaeimethod@Reza:您建议的解决方法很好,因为它解决了问题,而不是指出op设计中的(真实的或感知的)缺陷,所以它应该是一个答案,我不知道该怎么做,但我知道这两种双击动作对我来说都不是直观的。向选项卡添加一个X,向选项卡控件添加一个+-页,这是标准的用户期望值。-Lol:刚才注意到,看一看完全相同的反应,或者看起来该部分对鼠标是透明的,所有鼠标事件都通过该部分,并将由该部分后面的控件接收。因此,作为一种解决方法,您可以将
TabControl
放在
面板中,并将
TabControl
Dock
属性设置为true,以及
Panel
的句柄
双击事件。老实说,我不认为这是行业标准。有些应用程序可能会这样做,但我知道NP++有一个双击操作,我将尝试Reza Aghaeimethod@Reza:您建议的解决方法很好,因为它解决了问题,而不是指出op设计中的(真实的或感知到的)缺陷,所以它应该是一个答案,imo。