或许,我会成为一名画家。。。
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);
        }
posted on 2016-04-18 16:51 Ying-er 阅读(433) 评论(0)  编辑  收藏 所属分类: .Net

只有注册用户登录后才能发表评论。


网站导航: