FrancescoN
FrancescoN

Reputation: 2186

c# drawing, circle goes outside form

I am trying to draw a circle within my form. But it is strange to me I set form width and height to a fixed number, i do the same for the circle, but the circle figure goes outside the form.

private void Form3_Paint(object sender, PaintEventArgs e)
{        
    this.SuspendLayout();

    gr = this.CreateGraphics();
    gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

    Brush fill_circ3 = Brushes.Blue;

    Pen ellipse_pen = new Pen(Color.Blue);            
    ellipse_pen.Width = (float)2.0;

    this.Width = this.Height = 400;
    Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);
    gr.DrawEllipse(ellipse_pen, rect);

    this.ResumeLayout();
}

The 3rd and 4th parameters of the Rectangle constructor defines the size in width and height of the circle.

See the circle I got

enter image description here

Why does the circle goes outside the form???! I have set form and circle sizes the same!!!

Upvotes: 0

Views: 842

Answers (1)

Simon Mourier
Simon Mourier

Reputation: 139256

It's because you use the Window size, not the "client" size. Just replace your code by this:

gr.DrawEllipse(ellipse_pen, this.ClientRectangle);

The client area of a control is the bounds of the control, minus the nonclient elements such as scroll bars, borders, title bars, and menus.

Upvotes: 2

Related Questions