// 绘制鼠标当前位置的标签
        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));
        }
Beispiel #3
0
        /// <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));
        }
Beispiel #4
0
        // 操作区容器重绘事件
        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);
        }