Windows will place System Ninja in the middle of the screen at the normal size before the previous window size can be applied. This causes the extra width to be assigned after the Draw() event, leading to half the app being hidden.
Something like this could resolve the problem:
int screen_size = SystemInformation.VirtualScreen.Width;
if (app_size > ((screen_size / 2) - 1) {
this.Location = new Point(this.Location.X - (screen_size / 2), this.Location.Y);
}
Unfortunately, that would cause all sorts of new problems on systems with multiple monitors or an app that allows multiple desktops. Checking for these conditions adds a lot of extra complexity that makes this issue not worth fixing.
Sorry.