自定义TabControl标题样式

自定义TabControl标题样式
或许,我会成为一名画家。。。
this.tabContents.DrawMode = TabDrawMode.OwnerDrawFixed;

        // --------------------------------------------------------------------------
         ///   <summary>
        
///  TabControl DrawItem時発生します。
        
///   </summary>
        
///   <param name="sender"></param>
        
///   <param name="e"></param>
         // --------------------------------------------------------------------------
         private  void tabContents_DrawItem( object sender, DrawItemEventArgs e)
        {
            SolidBrush pink =  new SolidBrush(Color.Pink);
            SolidBrush ws =  new SolidBrush(Color.LightGray);
            SolidBrush white =  new SolidBrush(Color.White);
            SolidBrush black =  new SolidBrush(Color.Black);
            StringFormat sf =  new StringFormat();
            Pen pen =  new Pen(Color.Gray);
            sf.Alignment = StringAlignment.Center;

             string text = tabContents.TabPages[e.Index].Text;
            Rectangle rect = tabContents.GetTabRect(e.Index);
            Rectangle rectSelected =  new Rectangle(rect.X - 3, rect.Y - 3, rect.Width, rect.Height + 3);
             if (text == "メモ" && hasMemo)
                e.Graphics.FillRectangle(pink, rect);
             else
            {
                 if (tabContents.SelectedIndex == e.Index)
                    e.Graphics.FillRectangle(white, rectSelected);
                 else
                    e.Graphics.FillRectangle(ws, rect);
            }

            Rectangle rectText =  new Rectangle(rect.X, rect.Y + 3, rect.Width, rect.Height + 3);
            e.Graphics.DrawString(text,  new Font("MS UI Gothic", 9), black, rectText, sf);

            Point p1 =  new Point(rect.X, rect.Y);
            Point p2 =  new Point(rect.X, rect.Y + rect.Height);
            e.Graphics.DrawLine(pen, p1, p2);
            p1 =  new Point(rect.X + rect.Width, rect.Y);
            p2 =  new Point(rect.X + rect.Width, rect.Y + rect.Height);
            e.Graphics.DrawLine(pen, p1, p2);
            p1 =  new Point(rect.X, rect.Y);
            p2 =  new Point(rect.X + rect.Width, rect.Y);
            e.Graphics.DrawLine(pen, p1, p2);
        }

你可能感兴趣的:(自定义TabControl标题样式)