【发布时间】:2016-09-04 21:14:04
【问题描述】:
我正在编写一个 C# WinForm 应用程序。我有一个选项卡控件,并且已经预设了所有功能,例如通过菜单添加新选项卡,以及双击要删除的选项卡。我现在的问题是每次双击选项卡控件的空白灰色区域时都想创建一个选项卡。
我已经搜索了大约一个小时,我发现的很多内容都与 WPF 打交道,我不想很快深入研究这些内容。所以我正在寻找一个适合我检测双击的方法。我已经尝试过double click 和mouse double click 双击适用于选项卡,鼠标双击的作用相同,只是它捕获了鼠标事件参数。这样我就可以使用了
e.Location
除了它仅在选项卡本身上提供该信息。任何人有任何建议来捕捉标签本身之外的双击?我已经尝试过在父窗口上双击鼠标,例如在窗口本身上双击,尝试创建一个完全不透明的元素来处理点击,但我每次都碰壁了。
private void Tabs_MouseDoubleClick(object sender, MouseEventArgs e)
{
//only works when double clicking tabs
MessageBox.Show(e.Location.ToString());
}
【问题讨论】:
-
我不知道该怎么做,但我知道这两个双击操作对我来说似乎都不太直观。向选项卡添加 X 和向选项卡控件添加 + 页是标准用户所期望的。 - 大声笑:刚刚注意到完全相同的反应here
-
似乎该部分对鼠标是透明的,所有鼠标事件都通过该部分,并将被该部分后面的控件接收。因此,作为一种解决方法,您可以将
TabControl放在Panel中并将TabControl的Dock属性设置为true,并将DoubleClick的句柄DoubleClick事件设置为Panel。 -
TaW 老实说,我不认为这是行业标准。一些应用程序可能会这样做,但我知道 NP++ 具有双击操作,并且将尝试 Reza Aghaei 方法
-
@Reza:您建议的解决方法工作正常,因为它解决了问题,而不是指出操作设计中的(真实或感知的)缺陷,它应该是一个答案,imo。
标签: c# .net winforms tabcontrol