So what should you do if you need to create or buy a custom control? My advice is to make sure that the control looks and behaves like a standard control as much as possible. Most third-party controls give you significant control over their appearance and behavior, so make sure standard appearance and behavior are among the options. The goal should be that a nonprogrammer user (that is, someone who doesn't know what is standard) can make good use of your program yet have no clue that he is using a custom control.
TIP
Choose custom controls that look and behave like standard controls. Ideally, users should have no clue that they are using a custom control.
Interestingly, if you look at the advertisements for custom controls in programmer's magazines, the ads typically go out of their way to make it painfully obvious that the control is nonstandard and looks nothing like the standard controls. This makes sense, of course, since the ad wouldn't get anyone's attention if the control looked like a standard control, but definitely don't use this marketing technique as a guide for user interface design.
When evaluating a custom control, I recommend that you ask yourself the following questions:
If the custom control scores well on all of these points, the control is probably appropriate to use and a pleasure for your user to work with.