If your application needs a UI component whose behavior is sufficiently different from any of the built-in controls, it usually makes sense to write a special-purpose control for the job. And although writing a control from scratch is slightly harder work than just reusing existing controls, it is normally more straightforward than trying to bend an unsuitable control to meet your needs.
Custom controls derive directly from
means that you’re not really starting from scratch
at all—your class will automatically have all the functionality
that is common to all controls. But there are two areas in which you
are on your own: your control’s appearance and the
way it handles input from the user.
With a custom control, you are given a blank slate. It is your responsibility to determine the control’s appearance. In fact, the main reason for creating a custom control is often that none of the built-in ones looks right for the application. So we will now see how your control can draw itself, and we will then look at how to deal with input from the user.
your control first becomes visible at runtime, Windows Forms will ask
it to draw itself. It does this by calling your
OnPaint method. This
method is defined by the
Control class, but its
implementation doesn’t draw anything. The built-in
control types supply an implementation of
OnPaint for you, but with a custom control, it is your job to override this and draw the control as you see ...