To reproduce:
- Set the MaximizedBounds property so the form takes the entire right part of the screen, the change the windows state at runtime:
private void radButton1_Click(object sender, EventArgs e)
{
setFormMaximizedBounds(200);
}
private void radButton2_Click(object sender, EventArgs e)
{
setFormMaximizedBounds(-1);
}
private void setFormMaximizedBounds(int distance)
{
if (distance >= 0)
{
var ownerScreen = Screen.FromControl(this);
var workingArea = ownerScreen.WorkingArea;
var x = workingArea.X + distance;
var y = workingArea.Y;
var w = workingArea.Width - distance;
var h = workingArea.Height;
this.MaximizedBounds = new Rectangle(x, y, w, h);
}
else
{
this.MaximizedBounds = new Rectangle(0, 0, 0, 0);
}
if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
this.WindowState = FormWindowState.Maximized;
}
}