I know how to use the default buttons item, but is there any way to achieve the style of multiline buttons (or maybe rather, “clickable text”?) like shown below?

The situation is that I have an interface for the user to select what kind of file he wishes to establish, and there has to be a brief description under the larger, main line of text.
I’m only planning to run this on Windows 7, so I don’t need to worry about backwards compatibility with older versions of Windows
The button shown in the screenshot is actually one used throughout the Aero UI. It’s a custom style of button called a “command link”, and it can be easily applied to a standard
Buttoncontrol.Unfortunately, the WinForms libraries don’t expose this functionality via a simple property, but that’s easily fixable with a bit of P/Invoke.
The style you’re looking for is called
BS_COMMANDLINK. According to the documentation, this style:Here’s a little custom button control class that extends the standard WinForms
Buttoncontrol, and implements the “command link” style as a property you can configure in the designer or through code.A couple of things to note about the code:
The
FlatStyleproperty must always be set toFlatStyle.System, which forces the use of the standard Windows API Button control, rather than one drawn by WinForms code. This is required for theBS_COMMANDLINKstyle to work (because it’s only supported by the native controls), and it produces a better looking button control (with throbbing effects, etc.) anyway. To force this, I’ve overridden theFlatStyleproperty and set a default value.The
CommandLinkproperty is how you toggle on and off the “command link” style. It’s off by default, giving you a standard button control, so you can replace all of the button controls in your application with this one, if you want, just for convenience. When you turn the property on (set it toTrue), then you get a fancy, multiline command link button.The command link button’s caption is the same caption as is displayed on a standard button. However, caption button also support a “description” on the second line. This is configurable through another property, called
CommandLinkNote, after the WinAPI message,BCM_SETNOTE. When you have the button configured as a standard button control (CommandLink = False), the value of this property is ignored.