标签页标题位置

时间:2015-05-22 14:33:13

标签: c# location tabcontrol

我的表单中有一个Tab控件,我想要实现的是获取Tab页面标题的确切位置的简单方法。

我已经四处寻找,但我没有找到任何东西。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这会使标签控制闪烁一点点,但它会返回页面的边界矩形列表'头..

SortedDictionary<int, Rectangle> GetTabBounds(TabControl tab)
{
    SortedDictionary<int, Rectangle> bounds = new SortedDictionary<int, Rectangle>();
    TabDrawMode tdm = tab.DrawMode;
    tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;
    DrawItemEventHandler mit = (sl, el) => bounds.Add(el.Index, el.Bounds);
    tab.DrawItem += mit;
    tab.Refresh();
    tab.DrawItem -= mit;
    tab.DrawMode = tdm;
    tab.Invalidate();
    return bounds;
}

对于不太精确的结果,您可能只想从页面索引和标签项目大小计算它们。至少如果您的页面都在一行中。