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