Derive a class from System.Web.UI.Control
Override the CreateChildControls method
Visual Studio includes a project type, Web Custom Control, that fits the bill
How to add controls to a custom composite control
Instantiate the child control
Add the child control to the composite control's Control collection
How to add a custom control to the toolbox
Show the toolbox if it's not already showing by selecting View | Toolbox from the main menu
Right mouse click anywhere in the toolbox
Select Choose Items from the local menu
Choose a control from the list
OR
Browse to the assembly containing the control
How to tell ASP.NET to make up unique IDs for the child controls within the composite control
Add INamingContainer to the control's inheritance list
How to raise events within a custom composite control
Expose the events using the event keyword
Create composite controls with designer support
Within a Visual Studio Web Site project, select Web site | Add New Item… from the main menu
Select the Web User Control template