Click here to Skip to main content
15,903,012 members
Please Sign up or sign in to vote.
5.00/5 (5 votes)
See more:
I am working with windows application in .net framework 3.5. May I get some points about what are the latest methods to improve the GUI apperance?
Updated 4-Mar-16 23:21pm
Sergey Alexandrovich Kryukov 28-Jan-11 4:20am    
Thank you for interesting question -- I voted 5. I provided two answers instead of one -- on two different levels. My shorter answer is more important.

Sergey Alexandrovich Kryukov 28-Jan-11 4:23am    
...and therefore, you should better accept the short answer as well, if you don't have objections (which are welcome) :-)

Good taste and common sense. Not very new method, right? There is one more, as it comes to the "latest methods": don't chase "cool" and "fashionable" — this is an easy way to make dull work "like everyone's". Instead, start from thinking how to help real customers doing their real work (not the work you would might like them to do).

Note: developing good taste and common sense is hard work. One method to develop the both is in-depth communications with that very real customers and your colleagues (and not only software developers).

Good luck.
Share this answer
JF2015 28-Jan-11 2:37am    
Good answer. 5
Sergey Alexandrovich Kryukov 28-Jan-11 2:43am    
Thank you.
Jeffry John 28-Jan-11 4:31am    
Thanks nice answer
Sergey Alexandrovich Kryukov 7-Dec-12 15:22pm    
You are very welcome. (Sorry for late reply...)
Good luck, call again.
Sergey Alexandrovich Kryukov 28-Jan-11 12:58pm    
Perhaps I should note: "Common sense" is not very common, unfortunately. This is just an artifact of English idiomatic as well as "horse sense". For example, in my native culture the same notion is expressed in more precise wording; in back translation would look like "healthy sense".
Thank you.
I already gave a general answer; and this is the most important.
Perhaps, some list of practical concrete answers can help? It's not so easy to list universal rules. Anyway, I'll start adding what comes to my mind, with no certain system. Will try to remember my learning of industrial design and my own findings.

  • Say big "no" to MDI.
  • Limit the bare minimum or avoid completely: pop-up dialogs, multiple forms. Instead, prefer: dockable controls, tabbed interface, expandable forms/windows.
  • Even if multiple forms are used, they should not be fully independent; make them owned forms/windows; owned by the main form/windows, which should visually stand out. Don't allow all the windows/forms to be shown in system tray, only the main one should be shown.
  • If there are many buttons and edit text box on one view — something went wrong. Get rid of them it favor of grids, lists, tree views, property grids.
  • Clearly realize difference between drag-and-drop and select-and-drop; second style is much better (look at Visual Studio Tool Box); it is very hard to move mouse precisely while holding its button: a sleep of a finger can destroy the user's operation.
  • Never assume monitor resolution and aspect ratio (I recently gave two answers on the topic).
  • Don't use manual control layout; don't use anchors; instead, use many panels, docking and padding/margins.
  • Don't use many different fonts: one is often enough, two is usually good, 2-3 is usually two many.
  • Don't use a single decorator without purpose, just "for style". If you use a visual frame lines or a separator line, it means it should visually delimiter important functional groups. Every single tiny line in the view should be rigorously justified by some functional purpose.
  • Readability is much more important then anything else (the user tends to fail to read important information even if readability is perfect). No text over patterned background, ever!
  • Say big "no" to dashed/dotted lines. Important exclusion: selection.
  • Use bitmap only for tiny glyph/icon images. For bigger images, prefer scalable vector graphics.
  • Even minor flicker spoils everything. Fight it by all means. Some old Windows controls inherently flicker. It can be cured by total custom draw.
  • Tab navigation should be strictly ordered; layout of the controls should visually suggest Tab ordering to avoid any confusions.
  • When a window/form is shown, never leave it without a certain control which gets keyboard focus. The focused control must be the one the you expect to be operated by the user first.
  • Don't leave a single focusable control without fast navigation to it using just the keyboard, without a need to use mouse.
  • About Box should automatically show data found in AssemblyInfo (for .NET Assemblies), in version information resources (for native Windows applications).

...could be continued...

Good luck!
Share this answer
JF2015 28-Jan-11 3:36am    
Another great and interesting read. Why don't you extend this list to a full article? I'd love to read that. 5+
Sergey Alexandrovich Kryukov 28-Jan-11 4:03am    
Because I will run out of idea pretty soon. Detail explanations of all variants and methods would produce a whole book -- a boring one.
It's good enough for yet another Tips/Trick article, no more.
Thank you very much,
Manas Bhardwaj 28-Jan-11 3:54am    
I can only give a maximum of 5 here. :)
As JF said, you should extend this to an article.
Sergey Alexandrovich Kryukov 28-Jan-11 4:04am    
Thank you very much, Manas.
I replied to JF2015's comment explaining why not an article.
Jeffry John 28-Jan-11 4:28am    
Thanks for your quick response. It was a nice explanation, may I know what are the GUI problems with MDI?
The latest method is of course to use WPF:

Creating a Skinned User Interface in WPF[^]

If you want to use skinning for winforms take a look at these:

A New Skin for Ye Olde GroupBox[^]

The Grouper - A Custom Groupbox Control[^]

GUI Skinning System for Windows Forms .NET[^]
Share this answer
Richard MacCutchan 5-Mar-16 5:41am    
This question is more than 5 years old.
RickZeeland 5-Mar-16 9:11am    
I was confused because it was on the first page with "active" questions.
Probably because someone did some editing ?
I will pay closer attention to the original date next time !

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900