It's easy to create a custom control in ASP.NET by deriving a new class from an already existing control. Creating a new ASP.NET control from scratch, on the other hand, is more challenging. When you need a Web server control and none of the existing ones meet your requirements, you can derive from one of the base classes - Control or WebControl. Try it out.
MSDN Magazine June 2003
View Complete Post