0

好的,我用这段代码制作了一个表格:this.FormBorderStyle = FormBorderStyle.None;好的,我还用这段代码添加了一个边框半径:

[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
    private static extern IntPtr CreateRoundRectRgn
    (
        int nLeftRect, // x-coordinate of upper-left corner
        int nTopRect, // y-coordinate of upper-left corner
        int nRightRect, // x-coordinate of lower-right corner
        int nBottomRect, // y-coordinate of lower-right corner
        int nWidthEllipse, // height of ellipse
        int nHeightEllipse // width of ellipse
     );

    public Form4()
    {
        InitializeComponent();
        Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 20, 20));
    }

所以,我需要的是在与边界半径弯曲的表单周围添加一个小的黑色边框。我怎么做?

好的,我添加了这个,它有效,但它不符合边界,它只是海峡:e.Graphics.DrawRectangle(Pens.Black, new Rectangle(0, 0, Width - 1, Height - 1)); 而且这个:

ControlPaint.DrawBorder(e.Graphics, this.ClientRectangle, Color.Black, ButtonBorderStyle.Solid);
4

1 回答 1

1

覆盖表单的 OnPaintBackground() 方法,并使用传入的 e.Graphics 对象通过 Graphics 方法简单地绘制边框。

请注意,当您使用 Region(GraphicsPath) 构造函数时,您不必调用。同样的 GraphicsPath 也可以方便地绘制边框。

于 2012-05-20T14:57:57.810 回答