我正在编写 C# WinForm 应用程序。我有一个标签控件,我已经预设了所有功能,例如通过菜单添加新标签,双击标签删除。我现在的问题是,每次双击选项卡控件的空白灰色区域时,我都想创建一个选项卡。
我已经搜索了大约一个小时,我发现的很多内容都是与 WPF 打交道的,我不想很快深入研究这些内容。所以我正在寻找适合我检测双击的方法的问题。我试过 双击
和 鼠标双击
双击在选项卡上工作,鼠标双击做同样的事情,除了它捕获鼠标事件参数。这样我就可以使用
e.Location
除了它仅在选项卡本身上提供该信息。任何人有任何建议来捕获标签本身之外的双击吗?我试过在父项中使用鼠标双击窗口本身,尝试创建一个完全不透明的元素来处理点击,但我每次都碰壁了。
private void Tabs_MouseDoubleClick(object sender, MouseEventArgs e)
{
//only works when double clicking tabs
MessageBox.Show(e.Location.ToString());
}
最佳答案
似乎TabControl
部分对鼠标是透明的,所有的鼠标事件都会经过该部分,并被该部分后面的控件接收。
因此,作为解决方法,您可以将 TabControl
放在 Panel
中,并设置 TabControl
的 Dock
属性Fill
,并处理 Panel
的 DoubleClick
事件。您还可以选择鼠标 Hook ,但我相信面板选项更简单。
控件的鼠标透明部分在下图中以红色显示。控制边界也是该区域的一部分。
关于C# Tab控件空白处双击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39321551/