对下面显示的控件感到好奇,旁边带有标签的直线。我试图为它找到一个类似的控件但是没有任何组框设置,所以我只是制作了一个高度为2的GroupBox来复制它。
但是有实际的控制或设置吗?什么是实际控制?
答案 0 :(得分:10)
Spy++告诉我们这些实际上是两个独立的STATIC
controls(类似于WinForms中的Label
。)
第一个是简单的常规静态文本控件,显示“主页”。
第二个设置了SS_ETCHEDHORZ
style,这使得它作为3D线绘制。不幸的是,在WinForms中没有向我们展示设置此样式的能力。
正如您在问题中所提到的,有一些黑客/解决方法可以让我们实现类似的外观,例如垂直压缩GroupBox
控件或覆盖{{1}的OnPaint
方法控制并使用Label
类绘制3D边框。他们工作,但我从来没有喜欢过他们。
但可以自己实际设置ControlPaint
样式,以便您可以完全复制本机UI。这是一个完全相同的小班。将它添加到您的项目中,编译,您应该会在工具箱中看到一个名为“HorizontalRule”的新控件。像使用任何其他控件一样使用它!
SS_ETCHEDHORZ
您还可以找到更详细的信息和其他示例代码here on CodeProject。
答案 1 :(得分:0)
几年前我遇到了同样的问题,最后为此目的画了一条线。
事实上,我甚至使用了一个足够宽的固定线图像,因此可以通过显示图像所需的部分(宽度)在所有情况下使用它。
从那以后,这个解决方案对我来说很好。