想做出如图的效果,但是有一个怪问题,就是选项卡上面的字都不见了,
试过在drawitem事件里面重绘,也是没有效果,
代码如下private void tabControl1_DrawItem_1(object sender, DrawItemEventArgs e)
{
Graphics g = e.Graphics;
Rectangle rec = this.tabControl1.GetTabRect(e.Index);
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
TabPage m_tabpage = this.tabControl1.TabPages[e.Index];
Brush m_brush;
if (e.State == DrawItemState.Selected)
{
m_brush = new SolidBrush(e.ForeColor);
g.FillRectangle(m_brush, rec);
}
else
{
m_brush = new SolidBrush(e.BackColor);
e.DrawBackground();
}
g.DrawString(m_tabpage.Text,e.Font, m_brush, rec, sf);
}//tabcontrol的属性如下
this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left;
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Controls.Add(this.tabPage4);
this.tabControl1.Controls.Add(this.tabPage5);
this.tabControl1.Controls.Add(this.tabPage6);
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControl1.ItemSize = new System.Drawing.Size(40, 100);
this.tabControl1.Location = new System.Drawing.Point(0, 24);
this.tabControl1.Multiline = true;
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(716, 435);
this.tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.tabControl1.TabIndex = 1;
this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem_1);
这样 你写的 draw函数才会起作用至于你说的 字不见了 我也不知道什么原因 可能是你pading或者什么属性值设的有问题吧