C#重绘TabControl的Tabpage标签
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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);