如何在WinForms应用程序中创建一行?

RHa*_*uda 15 graphics winforms

我想在WinForms应用程序中创建一个简单的3D线,以改善我的表单布局的视觉排列.此行非常类似于"关于Windows"对话框中的行(可以在Windows资源管理器中打开 - >"帮助" - >"关于Windows").

这里有一个例子.最后一行(3D)是我想要的,而不是第一行.

如何在C#或Visual Basic(.NET)中完成?

谢谢

noe*_*cus 49

添加带有3D边框且没有文本的Label控件,然后将高度设置为2.


Han*_*ant 9

如果您使用SysInternals的ZoomIt实用程序,您可以看到这只是两行.白色上方的深灰色.使用Graphics.DrawLine()绘制线条非常简单,只需要确保选择适合表单BackColor的深色.如果用户选择了另一个主题,那并不总是战舰灰色.这使得GroupBox技巧陷入瘫痪.

此示例代码是可维护的:

    protected override void OnPaint(PaintEventArgs e) {
        Color back = this.BackColor;
        Color dark = Color.FromArgb(back.R >> 1, back.G >> 1, back.B >> 1);
        int y = button1.Bottom + 20;
        using (var pen = new Pen(dark)) {
            e.Graphics.DrawLine(pen, 30, y, this.ClientSize.Width - 30, y);
        }
        e.Graphics.DrawLine(Pens.White, 30, y+1, this.ClientSize.Width - 30, y+1);
    }
Run Code Online (Sandbox Code Playgroud)

请注意,在此代码中使用button1,以确保在正确的高度绘制线条,即使重新缩放表单也是如此.选择您自己的控件作为该行的参考.