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
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
Figure 9-6. An extender provider ...