Extender Providers
As we saw in the previous section, it is possible to extend the set of properties that a control presents at design time by writing a custom designer class and implementing one or more of the metadata filtering methods. But what if you want to extend the property set of more than one control? You could write a designer class that is used as the base class for several controls’ designers, but what if you would like to be able to extend the property sets of controls you did not write?
The Forms Designer supports a special kind of component called an
extender provider, which is able to extend the property set of any
control. For example, the built-in ToolTip
component is an extender provider—if you add a
ToolTip
component to a form, every control on the
form gets an extra ToolTip
property. (Such
properties are known as
extender properties.) We already saw how to use extender providers
in Chapter 3, but we will now see how to implement
such a component.
Extender providers are not controls, because they do not participate
directly in the user interface. In the Forms Designer, they appear in
the component tray rather than on the form itself, as shown in Figure 9-6. So instead of inheriting from the
Control
class, an extender provider must derive
directly from the Component
class, which is
defined in the System.ComponentModel
namespace.
Figure 9-6. An extender provider ...
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.