I have a form that is centered according to the screen position that I resize by fontsize when loading. After resizing the location remains the same as it was before resizing so the form is no longer in the center, like I would like.
Let me draw you a sketch:
I've tried calling
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.ResumeLayout(false);
this.PerformLayout();
again after resizing (this is, I believe, the part of the code that centers the form in the beginning). It didn't work. I've also found some similar issues like this: "Keeping winform control centered after window resize " but they always only deal with centring a control, not the form itself.
Add method for ResizeEnd
event. In method, when ResizeEnd
is fired, get current screen size (on multiple monitors, screen that contains current form) and then calculate form's position. Take a look at this example
private void Form1_ResizeEnd(object sender, EventArgs e)
{
Screen myScreen = Screen.FromControl(this);
Rectangle area = myScreen.WorkingArea;
this.Top = (area.Height - this.Height) / 2;
this.Left = (area.Width - this.Width) / 2;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With