我的表单中有一个Tab控件,我想要实现的是获取Tab页面标题的确切位置的简单方法。
我已经四处寻找,但我没有找到任何东西。有什么想法吗?答案 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;
}
对于不太精确的结果,您可能只想从页面索引和标签项目大小计算它们。至少如果您的页面都在一行中。