Custom Type Editors
The PropertyGrid
allows us to replace the built-in text-based editing. We can assign a
custom editor that supplies its own user interface. The framework
calls such editors UI Type Editors. Not only can these provide a
special-purpose editing user interface, they can change how the
property’s value is displayed even when we are not
editing its value.
Supplying a UI Type Editor is simple. We simply write a class that
derives from
System.Drawing.Design.UITypeEditor
and associate it with the property or type in question using the
Editor
attribute.
We only need to override two methods in our editor class. The first,
GetEditStyle
, is called
to determine what style of editing UI we support; we can open a
standalone modal dialog, drop down a UI in the
PropertyGrid
itself, or supply no editing UI. The
second method,
EditValue
, is called
when we are required to show our editing interface.
Let us add a new property to our CustomerDetails
class (as shown in Example 8-22) so that we can
supply a custom editing user interface for it. The new property is
Happiness
, and it indicates the level of customer
satisfaction, on a range of 0 to 100%. It is shown in Examples Example 8-23 and Example 8-24. The editor
has been specified with the Editor
attribute. (The
second parameter is always required to be
UITypeEditor
in the current version of the
framework.) The property’s type here is
int
or Integer
, but we can provide custom UI editors for any type, whether it is a custom ...
Get .NET Windows Forms in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.