如何从基于Point的TabControl获取TabPage?

时间:2010-10-29 15:37:43

标签: .net winforms mouse tabcontrol tabpage

当然, 很容易;我只是没有运气。

如何获取其标签包含给定TabPage的给定TabControl的{​​{1}}?例如,如果我正在处理Point事件,并且我想知道鼠标在发布时哪个标签结束了。

我尝试MouseUp,但似乎总是返回第一个标签(除非我使用它错了)。

2 个答案:

答案 0 :(得分:5)

试试这个:

TabPage GetPageByPoint(TabControl tabControl, Point point)
{
    for (int i = 0; i < tabControl.TabPages.Count; i++)
    {
        TabPage page = tabControl.TabPages[i];
        if (tabControl.GetTabRect(i).Contains(point))
            return page;
    }
    return null;
}
祝你好运!

答案 1 :(得分:2)

您可以尝试将GetChildAtPoint的重载与GetChildAtPointSkip一起使用 - this Connect bug表明它可以正常工作。