.NET C# - WinForm边框

时间:2011-03-29 18:02:48

标签: c# .net winforms visual-studio

我有一个没有边框的WinForm(无边框)。如何在表单中添加1px黑色边框?

    public MainForm()
    {
        InitializeComponent();
        this.DoubleBuffered = true;
        Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width - 5, Height - 5, 10, 10)); // adjust these parameters to get the lookyou want.
    }


    [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
     );

我需要一个无边框格式,但我想添加一个1px边框。

3 个答案:

答案 0 :(得分:5)

在表单的Paint事件处理程序中,添加以下代码:

private void Form1_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.DrawRectangle(Pens.Black, new Rectangle(0, 0, Width - 1, Height - 1));
}
祝你好运!

答案 1 :(得分:2)

您可以添加完全停靠的Panel,并将另一个完全停靠的Panel添加为子控件。将外Panel的填充设置为1,将外Panel的背景颜色设置为黑色。

然后将内部Panel的背景颜色设置为SystemColors.Control

答案 2 :(得分:0)

如果你不想画画,

添加4个面板宽度或高度2或4以及黑色背景颜色 将它们分别在顶部,右侧,底部,左侧以不同的方式停靠在四个侧面

Cannot convert value of type '(Any, Error) -> ()' to expected argument type 'PFIdResultBlock?'

您还可以更改鼠标指针以调整图标大小,还可以调整表格,在鼠标事件上编写一些代码。