Here's a question for me that really makes me wonder every time I start designing and developing a thick-client desktop application.

I'm a .NET developer, and with my forms (WinForms mostly, but the platform should be unimportant) I also choose the startup position to be Center. The reason I do this is because I can't stand randomness, and as a user myself I don't like when windows jump all over my monitor.

So my question for you, is what is the best way to go about this? Center an application startup window or have it randomly placed? And why?

  • 1
    Random is not a bad idea - so that you have a good chance of seeing it as well as other windows? Just a guess. – Job Dec 6 '11 at 0:59
  • 1
    Does not Windows (and other OS I'm assuming) itself have a method of placing new windows? I know that if I pull up a bunch of explorer windows they all stack nicely. Doesn't coming up with your own way of doing things break the end user's expectation of how THEIR OS is supposed to work? – Patrick Hughes Dec 6 '11 at 1:03

What I like to do is save the last size and position of the application window (at app shutdown) as a user setting. Then when the application is restarted I restore the last used size and position.

If you do this, be careful of using the spurious settings you'll get if the app is minimized at the time it is shut down (e.g. by a forced shutdown).

If I don't have a user setting to go by, I like to centre the window horizontally and then vertically I like it about 1/3 of the way down from the top. This has a nicer feel to it than dead centre vertically. Purely an asthetic choice on my part.

  • 4
    I like this as well, BUT you should check if the characteristics of the display have changed (resolution, number of screens, colours etc) on startup. I work with a laptop and very often go from using two screen displays (laptop's display and an external monitor) to using only the laptop display. Sometimes, an application gets "lost" in the external monitor when I work in laptop display exclusively. – tehnyit Dec 6 '11 at 13:33

You can initially put it in the center, but I prefer it to stay where I left it. That's the easiest way to remember where things are. I don't consider this random. I don't see how center is less random than upper-left. They can both be seen as arbitrary.


Did you think about allowing user to configure it? Maybe its the best approach, so each user could have a more satisfiying experience.

Give them options about where they would like windows to appear (upper/bottom right/left corner or center).

  • Seems like one more thing for a user to remember; where do you make this setting. – JeffO Dec 6 '11 at 1:41
  • @Jeff_O I'm no expert on .net development but, there should be a way to create a configuration file that could be read at startup, if this file does not exists, you ask the user and store the decision. This should be ask only once, or if configuration file doesn't exists – guiman Dec 6 '11 at 1:44
  • I think this is bad usability. What if every program did this? I don't think it would be better for the user if every application bugged them to enter the exact size and position they want that application's windows to appear. – Mike Daniels Dec 6 '11 at 1:48
  • I think you missundestood what i meant. You should give options, but its up to you on how fine or coarse the configuration options are. The finer, the more customizable, the coarser, the easier to use. – guiman Dec 6 '11 at 1:52
  • Those initial pop ups and wizards asking users for settings are great until you need to change them again. It's buried in some options tab after you hit the Advanced button. – JeffO Dec 6 '11 at 18:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy