C#重绘TabControl的Tabpage标签

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#重绘TabControl的T abpage标签,添加图片及关闭按钮

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace TabControlTest

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

const int CLOSE_SIZE = 15;

Bitmap image = new Bitmap("ONE.ico");

private void MainTabControl_DrawItem(object sender, DrawItemEventArgs e)

{

try

{

Rectangle myTabRect = this.MainTabControl.GetTabRect(e.Index);

//先添加TabPage属性

e.Graphics.DrawString(this.MainTabControl.TabPages[e.Index].Text

, this.Font, SystemBrushes.ControlText, myTabRect.X + 2, myTabRect.Y + 2);

//再画一个矩形框

using (Pen p = new Pen(Color.White))

{

myTabRect.Offset(myTabRect.Width - (CLOSE_SIZE + 3), 2);

myTabRect.Width = CLOSE_SIZE;

myTabRect.Height = CLOSE_SIZE;

e.Graphics.DrawRectangle(p, myTabRect);

}

//填充矩形框

Color recColor = e.State == DrawItemState.Selected ? Color.White : Color.White;

using (Brush b = new SolidBrush(recColor))

{

e.Graphics.FillRectangle(b, myTabRect);

}

//画关闭符号

using (Pen objpen = new Pen(Color.Black))

{

//"\"线

Point p1 = new Point(myTabRect.X + 3, myTabRect.Y + 3);

Point p2 = new Point(myTabRect.X + myTabRect.Width - 3, myTabRect.Y + myTabRect.Height - 3);

e.Graphics.DrawLine(objpen, p1, p2);

//"/"线

Point p3 = new Point(myTabRect.X + 3, myTabRect.Y + myTabRect.Height - 3);

Point p4 = new Point(myTabRect.X + myTabRect.Width - 3, myTabRect.Y +

3);

e.Graphics.DrawLine(objpen, p3, p4);

////=============================================

Bitmap bt = new Bitmap(image);

Point p5 = new Point(myTabRect.X - 50, 4);

e.Graphics.DrawImage(bt, p5);

//e.Graphics.DrawString(this.MainTabControl.TabPages[e.Index].Text, this.Font, objpen.Brush, p5);

}

//绘制小图标

//============================================================================= =

//Bitmap bt = new Bitmap("E:\\1\\2.jpg");

//Point p5 = new Point(4, 4);

////e.Graphics.DrawImage(bt, e.Bounds);

//e.Graphics.DrawImage(bt, p5);

//Pen pt = new Pen(Color.Red);

////e.Graphics.DrawString(this.MainTabControl.TabPages[e.Index].Text, this.Font, pt.Brush, e.Bounds);

//e.Graphics.DrawString(this.MainTabControl.TabPages[e.Index].Text,

this.Font, pt.Brush, p5);

相关文档
最新文档