C# TabControl重绘标题(DrawItem)设置标题区域大小
参考如下代码完成了标题重绘,重绘后标题在左侧,但是格式有变化。新标题的长等于原标题的宽,新标题的宽等于原标题的长,如何保持标题的长和宽,只重复标题的位置。private Rectangle tabArea;--------------------编程问答-------------------- sf.LineAlignment = StringAlignment.Center;
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);
}
}
sf.Alignment = StringAlignment.Center;
sf.FormatFlags = StringFormatFlags.DirectionVertical; --------------------编程问答-------------------- 不对啊!哥们,还是和之前一样,长宽还是对调了!加了你这句,文字显示是沿着竖线吧 --------------------编程问答-------------------- 长宽肯定是对调了,你标题长度不一样,tab绘制标题的长度肯定不会跟着你一样变长 --------------------编程问答-------------------- 长宽肯定是对调了,你标题长度不一样,tab绘制标题的长度肯定不会跟着你一样变长
补充:.NET技术 , C#