Susan Moty
Susan Moty

Reputation: 135

Simple rectangle box

How do put rectangular box around few controls on my winform? (i dont want the grouping thing).

Upvotes: 0

Views: 1073

Answers (4)

Cody Gray
Cody Gray

Reputation: 244732

What's wrong with the GroupBox control? Grouping together a related set of controls is exactly what it's intended for. Your users have seen it in every other application they use, and throughout the Windows shell. They're much more likely to recognize what it means than your own custom-drawn rectangle. Deviating from standard platform conventions is rarely a good idea. I strongly recommend using the GroupBox control, even if it's not exactly the perfect look that you had in mind.

That being said, it's certainly possible to draw your own box around a group of controls on a form. To do so, you'll need to override your form's OnPaint method and write some code to draw a rectangle. Doing it this way gives you complete control over the color of your box, as well as the line thickness.

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

The only thing you'll need to add is the code that calculates the dimensions of your rectangle, relative to the controls you want it to surround. Use the Location property of each control to get this information.

Upvotes: 2

Unknown
Unknown

Reputation: 411

You can put your controls into a panel and set its BorderStyle from None to FixedSingle - it is the easiest way

Upvotes: 0

Frédéric Hamidi
Frédéric Hamidi

Reputation: 262939

If you don't want to use a GroupBox, you can put your controls in a Panel and set its BorderStyle property to BorderStyle.FixedSingle or BorderStyle.Fixed3D.

Upvotes: 2

Ryan Bennett
Ryan Bennett

Reputation: 3432

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

You can draw lines on a windows form this way. This would hook into the Paint method where e is PaintEventArgs

Upvotes: 0

Related Questions