你遇到过类似问题吗?修改C#界面背景边框之后,控件边框总是默认白色,无法修改,以GroupBox控件为例,如图1.1所示,这样界面看起来会非常难看。
图1.1
由于C#中GroupBox控件没有改变控件边框颜色的属性,所以为了改变GroupBox控件的边框颜色,需要重新定义一个GroupBoxBC控件,并为其添加改变控件边框颜色的属性,具体实现过程如下:
首先右键项目名称然后点击添加,然后选择组件,然后选择用户控件,并将命名为GrouBoxC,最后点击添加按钮,操作流程如图1.2和1.3所示。
图1.2
图1.3
因为我们要给GroupBoxBC添加方法,所以点击代码视图,编写代码,如图1.4点击红色边框内的蓝色部分。
图1.4
然后添加属性代码,代码中需要注意的地方已经给出注释,具体请看代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;
namespace GrouboxAttribute
public partial class GroupBoxBC : GroupBox
public GroupBoxBC()
InitializeComponent();
public GroupBoxBC(IContainer container)
container.Add(this);
InitializeComponent();
private Color _BorderColor = Color.Black;
[Browsable(true), Description("边框颜色"), Category("自定义分组")]
public Color BorderColor
get { return _BorderColor; }
_BorderColor = value;
this.Invalidate();
protected override void OnPaint(PaintEventArgs e)
var vSize = e.Graphics.MeasureString(this.Text, this.Font);
e.Graphics.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), 10, 1);
Pen vPen = new Pen(this._BorderColor);
e.Graphics.DrawLine(vPen, 1, vSize.Height / 2, 8, vSize.Height / 2);
e.Graphics.DrawLine(vPen, vSize.Width + 8, vSize.Height / 2, this.Width - 2, vSize.Height / 2);
e.Graphics.DrawLine(vPen, 1, vSize.Height / 2, 1, this.Height - 2);
e.Graphics.DrawLine(vPen, 1, this.Height - 2, this.Width - 2, this.Height - 2);
e.Graphics.DrawLine(vPen, this.Width - 2, vSize.Height / 2, this.Width - 2, this.Height - 2);
然后重新生成解决方法,打开工具箱就可以看到自定义的窗体了,如图1.5所示。
图1.5
添加到窗体上,通过修改属性BorderColor可以更改边框颜色,看一下效果:图1.6
图1.7
Ok,大功告成啦!!!
@TO## 标题C欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行
网上很多都说使用 OnPaint 事件,但是我在事件列表中没找到,应该是隐藏得太深了(需要用 override 关键字来重写)。我这里直接使用了 Paint 事件,也可以达到其效果。
感谢:C#更改groupbox边框颜色_菜鸟的博客-CSDN博客_groupbox边框颜色
创建:在对话框OnInitDialog()函数中
m_group.Create(L"姜山", WS_CHILD | WS_VISIBLE | BS_GROUPBOX,
CRect(100, 100, 500, 300), this, 10000);
运行效果:
近期项目(C#)中有个关于界面的需求,要给groupbox设置边框颜色,VS中没有找到直接能修改的属性。经过一番查询,找到了答案,在groupbox的Paint事件中修改:
groupBox1.Paint += new PaintEventHandler(FnWidget.setGroupBoxBorder);
//修改GroupBox的边框颜色
public static void set...
HBRUSH CInfoBridgeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
if (pWnd->GetDlgCtrlID() == IDC
private void groupBox1_Paint(object sender, PaintEventArgs e)
e.Graphics.Clear(groupBox1.BackColor);
e.Graphics.DrawString(groupBox1.Text, groupBox1.Font, Brushes.
自己做项目时研究的 希望对看官有所帮助
因为在网站上看了好多对于边框的颜色改变
不是重写Paint方法 就是 把边框隐藏 还有就是重新在原有的方法上扩展GroupBox的属性
GroupBox的边框好像是 圆角矩形的 重写的方法好像是 直角矩形 费解!~~反正不是本人想要的
今天我跟大家唠嗑 我自己研究的小方法
1.因为WIN7和XP系统不一样所以那个把GroupBox
分组框通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。布局时可用作一组控件的容器,但是需要注意的是,内部必须使用布局控件(如QBoxLayout)进行布局。
//创建复选框
QGroupBox *groupBox = new QGroupBox(tr("服务器配置"));
groupBox->setFlat(false);//边框是否有线
groupBox-&
WPF之GroupBox样式_边框透明XAML:GroupBox引用:效果:使用前:使用后:
XAML:
<BorderGapMaskConverter x:Key="BorderGapMaskConverter"/>
<Style x:Key="GroupboxWithoutBorder" TargetType="{x:Type GroupBox}">
<Setter Property="BorderBrush" Value="#D5D
在WPF中,当GroupBox没有标题时,边框会有一个缺口。这是因为GroupBox控件默认的样式将标题的高度和边框的高度合并在一起,从而导致边框在没有标题时出现缺口。
要解决这个问题,可以通过修改GroupBox的样式来修复边框的缺口。首先,需要创建一个新的样式,然后在样式中调整边框和标题的布局位置。
在样式中,需要设置GroupBox的边框为一个新的Border控件,同时设置边框的Margin属性为负值,以覆盖默认的边框位置。另外,需要将边框的高度设置为GroupBox的高度减去标题的高度,这样就可以消除边框的缺口。
在样式中还可以通过设置Padding属性来调整GroupBox的内部边距,使内容与边框之间有适当的间距。
最后,将新的样式应用到GroupBox控件上即可,这样就可以实现无标题情况下边框无缺口的效果。
总的来说,通过调整GroupBox的样式可以解决无标题情况下边框出现缺口的问题。通过设置边框的Margin属性和高度,以及调整内部边距,可以使边框与内容对齐,并且无缺口。