5.4 Summary
By writing your own controls, you can encapsulate pieces of user
interface in reusable classes. The level of sophistication of these
controls can be anywhere from a single label with some added feature
to a feature-rich, fully custom control presenting a detailed
interactive view of a complex piece of data (e.g., a drawing editor).
The UserControl class lets you create a component
by assembling several other controls into one larger control,
arranging them with the same editor that you use when designing a
form. For more exotic requirements, you can write a full custom
control that inherits directly from Control (or
ScrollableControl) and manages all aspects of your
control's appearance and behavior. Regardless of how
you build your control, you must bear in mind the needs of two kinds
of user—the end user and the software developer. Confusing the
requirements of these two groups of people can lead to poor software
design choices.
Most of the time, if you choose to base your control on another
control, you should prefer reuse by containment over reuse by
inheritance. However, there are situations in which inheritance is
the right style of reuse, so we will look at this in the next
chapter.
|