I don't know why I was thinking about this the other day - but it came into my head that I really like "split buttons" and think they are very usable, for the right situations. I'd better explain.
"Split buttons" are buttons that also have a drop-down menu. Pressing the button should carry out an action*; alternatively, clicking on arrow to the right of the "split" should display different but similar actions that can be performed by clicking on the menu item. I don't know if "split buttons" have a better name or are even accepted controls, but they've been used in Windows for a long time. Internet Explorer's "Back" button, some Office dialogs, and even the new Hotmail UI are some easy examples.
Why a "split button"? In circumstances where a user needs to perform an action, but may have a choice of actions, many different UI choices can be made. I've illustrated some below where a user has to open a file, and may want "read-only" or "exclusive" options - you can draw your own conclusions as to space taken, presentation, discoverability, intuitiveness, and so on:
Of course my example is biased towards the "split button", which takes up the least room and does the basic task - opening - in one mouse-click or keypress.
"Split buttons" are now available in .NET 2.0 on toolbars, but I couldn't find one in the toolbox, which made me turn to JFo's blog where there's a nice C# class. This is basically a normal button with some special drawing code, that allows you to attach a ContextMenuStrip. Thanks JFo!
* If clicking on a "split button" simply displays the drop-down menu, it's more related to a combo box or menu control and not a "true" split button. The split button has an element of discoverability (albeit usually a fairly thin strip down the side where a click will show the drop-down menu).
Tags: windows, control, visual basic, user interface
Update 06 July: fixed links to picture (hopefully)