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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access