TabControl 控件默认的是将TabPages放在上面,当你改变它的Alignment属性的时候你可能会发现一个奇怪的现象:当Alignment设置为top,Bottom时,是没有问题的,而当你设置为Left和Right时,你会发现标题不显示文字。
然后上网查找了一些资料,提示说此时文字要重新绘制,毕竟重新绘制的文字跟原来的还是有差别的,不管怎么样,文字是显示出来了。现在我将整理的代码贴出来,希望对你有所帮助。
private Rectangle tabArea;
private RectangleF tabTextArea;
private void Form1_Load(object sender, EventArgs e)
{
TabSetMode();
}
/// <summary>
/// 设定控件绘制模式
/// </summary>
private void TabSetMode()
{
tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;
tabControl1.Alignment = TabAlignment.Left ;
}
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
tabArea = tabControl1.GetTabRect(e.Index);
tabTextArea = tabArea;
Graphics g = e.Graphics;
StringFormat sf = new StringFormat();
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
Font font = this.tabControl1.Font;
SolidBrush brush = new SolidBrush(Color.Black);
g.DrawString(((TabControl)(sender)).TabPages[e.Index].Text, font, brush, tabTextArea, sf);
}