Another of the peculiarities of Windows Forms is that the
RadioButton control doesn't support double clicking. Granted,
it is not often you require the functionality but it's a little
odd it's not supported.
As an example, one of our earlier products which never made it
to production uses a popup dialog to select a zoom level for a
RichTexBox. Common zoom levels are provided via a list of
radio buttons. Rather than the user having to first click a zoom
level and then click the OK button, we wanted the user to be
able to simply double click an option to have it selected and
the dialog close.
However, once again with a simple bit of overriding magic we can enable this functionality.
Create a new component and paste in the code below (
namespace statements omitted for clarity).
This new component inherits from the standard
control and unlocks the functionality we need.
The first thing we do in the constructor is to modify the
components control styles to enable the
style. At the same time we also set the
StandardClick style as
the MSDN documentation states that
StandardDoubleClick will be
StandardClick is not set.
As you can't override an event, we declare a new version of the
MouseDoubleClick event using the
new keyword. To this new
definition we add the
attributes so that the event appears in the IDE property
inspectors and intellisense.
Finally, we override the
OnMouseDoubleClick method and invoke
MouseDoubleClick event whenever this method is called.
And there we have it. Three short steps and we now have a radio button that you can double click.
- 2010-06-25 - First published
- 2020-11-21 - Updated formatting
Like what you're reading? Perhaps you like to buy us a coffee?