简单的矩形框

时间:2011-04-08 14:15:47

标签: c# .net winforms

如何在我的winform上的几个控件周围放置矩形框? (我不想要分组的事情。)

4 个答案:

答案 0 :(得分:2)

如果您不想使用GroupBox,可以将控件放在Panel中,并将其BorderStyle属性设置为BorderStyle.FixedSingle或{{1} }。

答案 1 :(得分:2)

GroupBox control有什么问题?将一组相关控件组合在一起完全它的用途。您的用户已经在他们使用的每个其他应用程序以及整个Windows shell中看到过它。他们更有可能认识到它比你自己定制的矩形意味着什么。偏离标准平台惯例很少是一个好主意。我强烈建议使用GroupBox控件,即使它不是您想到的完美外观。

话虽如此,当然可以在表单上的一组控件周围绘制自己的框。为此,您需要覆盖表单的OnPaint方法并编写一些代码来绘制矩形。这样做可以让您完全控制盒子的颜色以及线条粗细。

protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
    // Call the base class
    base.OnPaint(e);

    // Create your drawing pen
    using (Pen p = new Pen(SystemColors.WindowText, 2.0))
    {
        // Calculate the position and dimensions of the box
        Rectangle rect = new Rectangle(10, 10, 30, 30);

        // Draw the rectangle
        e.Graphics.DrawRectangle(p, rect);
    }
}

您唯一需要添加的是计算矩形尺寸的代码,相对于您希望它包围的控件。使用每个控件的Location property来获取此信息。

答案 2 :(得分:0)

http://msdn.microsoft.com/en-us/library/cyh3c8h8.aspx

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 0));
e.Graphics.DrawLine(pen, 20, 10, 300, 100);

您可以通过这种方式在窗体上绘制线条。这将挂钩到Paint方法,其中e是PaintEventArgs

答案 3 :(得分:0)

您可以将控件放入面板并将BorderStyleNone设置为FixedSingle - 这是最简单的方式