如何创建自定义非矩形GroupBox?

时间:2011-01-08 13:12:25

标签: c# winforms visual-studio-2010 user-interface user-controls

是否可以制作如下图所示的GroupBox

如果本机控件不可能有任何可能支持此功能的免费自定义控件吗?

alt text

3 个答案:

答案 0 :(得分:6)

不,框架中不存在这样的控件。您可以通过创建一个继承GroupBox的控件来自己创建一个。

答案 1 :(得分:5)

没有像您制作的图像那样的控件,我有非智能解决方案,但可能符合您的要求,

创建一个UserControl并在其中加入两个GroupBox控件,然后您将在它们之间划一条线,您可以通过在其上方添加一个面板来隐藏它而不None { {1}}。

然后你将拥有这个用户控件:

alt text

我知道它并不像你想要的那么聪明,但它可能比从头开始绘制并放松主题更容易。

您还可以创建标题属性以将垂直组框反映为用户控件的标题

BorderStyle
祝你好运!

答案 2 :(得分:3)

你不会找到像这样的控件。您可以自己创建一个,Control.Region属性允许您创建一个非矩形控件。您必须自己绘制轮廓和标题,在OnPaintBackground覆盖中执行此操作。

但是,实际上,这种控制作为一种可重用的控件并不会非常有趣,它可能在其他形式或项目中使用。请记住,它只需看起来就像用户的组合框一样。既然你必须自己编写绘图代码,只需在表单的Paint事件中执行。如果你因为radiobuttons真的需要一个盒子,那么请使用Panel。请记住Form.AutoScaleMode属性,不能硬编码行位置。