C#_绘制竖向TabPages,TabControls
定义:
privatevoidlist_DrawItem(objectsender,DrawItemEventArgse){FontfntTab;BrushbshBack;BrushbshFore;if(e.Index==this.list.SelectedIndex)//当前Tab页的样式{fntTab=newFont(e.Font,FontStyle.Bold);bshBack=newSystem.Drawing.Drawing2D.LinearGradientBrush(e.Bounds,Color.Blue,SystemColors.Control,System.Drawing.Drawing2D.LinearGradientMode.BackwardDiagonal);bshFore=Brushes.Black;}else//其余Tab页的样式{fntTab=e.Font;bshBack=newSolidBrush(SystemColors.Control);bshFore=newSolidBrush(SystemColors.Control);}//画样式stringtabName=this.list.TabPages[e.Index].Text;StringFormatsftTab=newStringFormat();e.Graphics.FillRectangle(bshBack,e.Bounds);RectanglerecTab=e.Bounds;recTab=newRectangle(recTab.X,recTab.Y+4,recTab.Width,recTab.Height-4);stringtext=((TabControl)sender).TabPages[e.Index].Text;SolidBrushbrush=newSolidBrush(Color.Black);StringFormatsf=newStringFormat(StringFormatFlags.DirectionRightToLeft);sf.LineAlignment=StringAlignment.Center;sf.Alignment=StringAlignment.Center;e.Graphics.DrawString(text,e.Font,brush,e.Bounds,sf);}调用:
list.DrawItem += new DrawItemEventHandler(list_DrawItem);
