仅头文件 GroupBox






4.63/5 (8投票s)
演示了一个Windows.Forms.GroupBox控件的简单子类,用于仅绘制标题。
引言
这是一个从Windows.Forms.GroupBox
类派生的简单控件示例,用于提供(现在相当标准)的“无框”分隔符,在MFC中有很多类似的例子。
你可能之前没有遇到过的是ControlPaint
类的使用。
HeaderOnlyGroupbox
首先,它用于绘制控件的禁用文本
if( Enabled ) { Brush br = new SolidBrush( ForeColor ); e.Graphics.DrawString( Text, Font, br, ClientRectangle, format ); br.Dispose(); } else { ControlPaint.DrawStringDisabled( e.Graphics, Text, Font, BackColor, ClientRectangle, format ); }
然后,它再次用于获取相对于当前BackColor
的Dark
和LightLight
控件颜色
Pen forePen = new Pen( ControlPaint.LightLight( BackColor ), SystemInformation.BorderSize.Height ); Pen forePenDark = new Pen( ControlPaint.Dark( BackColor ), SystemInformation.BorderSize.Height );
基本上就是这些了。
使用该类
在你的代码中,它只是GroupBox
的直接替代品
如果你使用的是VS.NET IDE,事情就没那么简单了(至少对我来说是这样)。我找不到一种方法让工具箱将该控件识别为它理解的东西。如果有人有任何想法,请与我联系。
但是,绕过它很容易。只需将一个常规的GroupBox
拖放到你的窗体上。然后,切换到代码编辑器,并将代码中的两个GroupBox
实例替换为HeaderGroupBox
(不要忘记适当地限定命名空间)。你可以继续使用窗体编辑器,它会很好地识别我们的新渲染。