Anuya
Anuya

Reputation: 8350

How to make a panel center of form?

How to make a panel center of form, even if the size of the form is changed. Using c# windows application

Upvotes: 29

Views: 71116

Answers (3)

Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint
    Panel1.Location = New Point(ClientSize.Width / 2 - Panel1.Size.Width / 2, ClientSize.Height / 2 - Panel1.Size.Height / 2)
    Panel1.Anchor = AnchorStyles.None
End Sub

Upvotes: 1

Himanshu Dwivedi
Himanshu Dwivedi

Reputation: 8174

set its Anchor property to None :

this.panel1.Anchor = System.Windows.Forms.AnchorStyles.None;

Upvotes: 7

Fredrik Mörk
Fredrik Mörk

Reputation: 158299

Position the panel in the center of the form using the designer, and then clear the Anchor property, so it is not anchored to any edge. This will keep it centered when the form resizes, without resizing the panel itself.

If, for some reason, you will need to position the panel in code (depending on things that happens during form load for instance) you can do something like this:

// code for initializing the panel and setting 
// its size goes here

_thePanel.Location = new Point(
    this.ClientSize.Width / 2 - _thePanel.Size.Width / 2,
    this.ClientSize.Height / 2 - _thePanel.Size.Height / 2);
_thePanel.Anchor = AnchorStyles.None;

That should take care of most scenarios, I imagine.

Upvotes: 47

Related Questions