// 绘制鼠标当前位置的标签 private void DrawMouseSelectPage(Graphics g, TabControl tab, int index) { if (index < 0 || index >= tab.TabCount) { return; } // 当前处理标签 TabPage changedpage = tab.TabPages[index]; // 标签背景区域 Rectangle backrect = DrawPageRec(tab, index); Brush backbrush = new SolidBrush(page_mouse_sel_color); // 标签背景色 Brush fontbrush = new SolidBrush(page_sel_font_color); // 标签字体颜色 Color bordercolor = page_mouse_sel_color; // 边框颜色 // tab字体 Font tabFont = new Font(tab.Font.SystemFontName, tab.Font.Size, tab.Font.Style); // 标签字体 // 绘制标签背景 g.FillRectangle(backbrush, backrect); // 绘制标签边框 ControlsUtils.SetControlBorderStyle(g, backrect, ButtonBorderStyle.Solid , 1, 1, 1, 1, page_mouse_sel_color); // 绘制标签文本 PageDrawString(g, backrect, changedpage.Text, tabFont, fontbrush); }
/// <summary> /// 重绘状态栏的边框 /// </summary> /// <param name="menu">需要重绘的菜单</param> private void paintStrutsBarFrame(object sender, PaintEventArgs e) { StatusStrip toolStrip = (StatusStrip)sender; ControlsUtils.SetControlBorderStyle(e.Graphics, toolStrip.ClientRectangle , ButtonBorderStyle.Solid , 0, 1, 0, 0 , Color.FromArgb(160, 160, 160)); }
/// <summary> /// 重绘菜单的边框 /// </summary> /// <param name="menu">需要重绘的菜单</param> private static void paintMenuFrame(object sender, PaintEventArgs e) { MenuStrip menu = (MenuStrip)sender; ControlsUtils.SetControlBorderStyle(e.Graphics, menu.ClientRectangle , ButtonBorderStyle.Solid , 0, 0, 0, 0 , Color.FromArgb(160, 160, 160)); }
// 操作区容器重绘事件 private void 普通_操作容器_Paint(object sender, PaintEventArgs e) { Panel panel = (Panel)sender; ControlsUtils.SetControlBorderStyle(e.Graphics, panel.ClientRectangle , ButtonBorderStyle.Solid , 0, 0, 0, 1 , ColorTranslator.FromHtml("#D9D9D9")); }
// 绘制未选中的标签 private void DrawNoSelectPage(Graphics g, TabControl tab, int index) { if (index < 0 || index >= tab.TabCount) { return; } // 当前处理标签 TabPage changedpage = tab.TabPages[index]; // 标签背景区域 Rectangle backrect = DrawPageRec(tab, index); // 用来零时制定偏移量的标签背景区域 Rectangle offsetBackrect = backrect; // 向下的偏移量 int offset = 1; offsetBackrect.Y = offsetBackrect.Y + offset; offsetBackrect.Height = offsetBackrect.Height - offset * 2; Brush backbrush = new SolidBrush(page_nosel_color); // 标签背景色 Brush fontbrush = new SolidBrush(page_nosel_font_color); // 标签字体颜色 Color bordercolor = page_border_color; // 边框颜色 // tab字体 Font tabFont = new Font(tab.Font.SystemFontName, tab.Font.Size, tab.Font.Style); // 标签字体 // 绘制标签背景 g.FillRectangle(backbrush, backrect); // 不为第一个 不为最后一个 且不为选中标签 且不为当前鼠标下的标签 且不为当前鼠标下的标签的后一个标签 if (index != tab.SelectedIndex && index != tab.SelectedIndex - 1 && index < tab.TabCount - 1 && ((index != MousePage && index != MousePage - 1) || (!MouseButtons.None.Equals(MouseClickButtons)))) { // 绘制标签边框 ControlsUtils.SetControlBorderStyle(g, offsetBackrect, ButtonBorderStyle.Solid , 1, 1, 1, 1, page_nosel_color, page_nosel_color, bordercolor, page_nosel_color); } // 绘制标签文本 PageDrawString(g, backrect, changedpage.Text, tabFont, fontbrush); }