I have a .NET Winforms application that hosts controls to provide different areas of functionality.

My normal method in providing a menu to switch between these controls has been a TreeView or a List as a left-side menu, however I have never been too satisfied with this, and it is looking more and more dated.

Personally, I don't like to use a menu bar, as the layout can get esoteric, discoverability is limited, and to open an area of an application will require at least 2 clicks at best.

Toolbars I have also found less than perfect as, unless functions are highly standard, trying to find or design a 16x16 icon that describes a function to a new user is a difficult and text on toolbars is somewhat ugly (IMHO)

With the emphasis on discoverability and less friction, what are some good methods to provide a menu of application functionality within a forms based application.

3 Answers 3


If the number of different application function areas is relatively low, you could use tabs across the top of the window to select the active function area.

Roxio Toast is one example:

Roxio Toast

Image source

Firefox is another example, in the Options dialog - you could even nest tabs to group related activities together:

Firefox Options

Image Source

  • Nice ideas, thanks. I do like, as @Nick Bedford suggested, the use of Image above Text on the tool strip buttons. The images over the tabs in the first screen shot are also nice.
    – johnc
    Jun 1, 2011 at 22:26

Without knowing specifics, you could use a ToolStrip and use ImageAboveText style? Other than a bunch of labelled buttons, I'm not too sure of other methods.

enter image description here

  • A nice idea, thanks, it does look nicer than the Image Text side by side, and I do like the category / sub category look that, with a mouse up event on the drop down will allow for single click sub-category navigation. Leaving this open, however, for a little longer in case anyone else has some more ideas before accepting
    – johnc
    Jun 1, 2011 at 0:26
  • Well, the ToolStrip and ToolStripMenuItem and drop downs etc are basically just the standard Windows implementation and respond to mouse over/click accordingly. Shouldn't need to worry about any of that stuff, just the Control.Click. Jun 1, 2011 at 1:21

You could try ListView instead of list. This provides much more flexibility with 5 different views available (but avoid the 'List' view-type, it has some rendering issues in Windows7); it works best when you group items in a list, group-headings help sub-divide the list. The Tile-view is useful because it can show a sub-title in a lighter font below the main text for each list item.

Have a look at a few website designs to give you an idea of what you actually want and sketch something out, I get inspiration from mobile phone apps too, but don't be tempted to animate your controls too much.

If you're going to start using custom controls, I would advise using WPF instead of Winforms as there's much more scope for the graphical design of the controls without getting stuck in GDI+. You could begin by hosting WPF controls within an existing Winforms app.

Depending on your user demographic, I would advise against giving up totally on the menubar, its useful for discoverability and for those who like to use Alt-Key combinations.

  • I have mucked about with alternate ListView modes, but not too seriously, I'll investigate a bit further
    – johnc
    Jun 1, 2011 at 0:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.