我重写的Tabpage组件(winform),实现在每个TabPage页后面绘制一个关闭的标识,但是只要TabPage上显示的信息太长就会把关闭标识绘到TabPage外面
请问改如何解决
我的代码
/// <summary>
/// 绘制页头信息
/// </summary>
/// <param name="e"></param>
protected override void OnDrawItem(DrawItemEventArgs e)
{
((TabControl)this).Size = new Size(500, 400);
Rectangle recBounds = new Rectangle(0, 0, 200, 50);
Pen p= new Pen(Color.Red);
Brush b = new SolidBrush(Color.Black);
PointF pointStr = new PointF(e.Bounds.Left, 4);
e.Graphics.DrawString(((TabControl)this).TabPages[e.Index].Text, this.Font, b, pointStr);
PointF pA, pB, pC, pD;
pA = new PointF(e.Bounds.Left + e.Graphics.MeasureString(((TabControl)this).TabPages[e.Index].Text, this.Font).Width-5, 5);
pB = new PointF(e.Bounds.Left + e.Graphics.MeasureString(((TabControl)this).TabPages[e.Index].Text, this.Font).Width , 5);
pC = new PointF(e.Bounds.Left + e.Graphics.MeasureString(((TabControl)this).TabPages[e.Index].Text, this.Font).Width-5, e.Bounds.Height-5);
pD = new PointF(e.Bounds.Left + e.Graphics.MeasureString(((TabControl)this).TabPages[e.Index].Text, this.Font).Width , e.Bounds.Height-5);
e.Graphics.DrawLine(p, pA, pD);
e.Graphics.DrawLine(p, pC, pB);
}
请问改如何解决
我的代码
/// <summary>
/// 绘制页头信息
/// </summary>
/// <param name="e"></param>
protected override void OnDrawItem(DrawItemEventArgs e)
{
((TabControl)this).Size = new Size(500, 400);
Rectangle recBounds = new Rectangle(0, 0, 200, 50);
Pen p= new Pen(Color.Red);
Brush b = new SolidBrush(Color.Black);
PointF pointStr = new PointF(e.Bounds.Left, 4);
e.Graphics.DrawString(((TabControl)this).TabPages[e.Index].Text, this.Font, b, pointStr);
PointF pA, pB, pC, pD;
pA = new PointF(e.Bounds.Left + e.Graphics.MeasureString(((TabControl)this).TabPages[e.Index].Text, this.Font).Width-5, 5);
pB = new PointF(e.Bounds.Left + e.Graphics.MeasureString(((TabControl)this).TabPages[e.Index].Text, this.Font).Width , 5);
pC = new PointF(e.Bounds.Left + e.Graphics.MeasureString(((TabControl)this).TabPages[e.Index].Text, this.Font).Width-5, e.Bounds.Height-5);
pD = new PointF(e.Bounds.Left + e.Graphics.MeasureString(((TabControl)this).TabPages[e.Index].Text, this.Font).Width , e.Bounds.Height-5);
e.Graphics.DrawLine(p, pA, pD);
e.Graphics.DrawLine(p, pC, pB);
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货