用户控件
后缀名为.ascx的文件

手工将.aspx改为.ascx文件后需要修改四处地方
*将System.Web.UI.Page改为System.Web.UI.UserControl
*将Codebehind="***.aspx.cs"改为"***.ascx.cs"
*将Page属性改为Control(与二同一行)
*删除多余的<form>标志

可以自定义属性方法和事件

不能可视化编辑,页面设计时不能控制控件大小且要与使用它的Web页面在同一个项目中

动态装载用户控件
this.FindControl("Form1").Controls.Add( this.LoadControl("***.ascx") );

复合控件(Composite control)
实际上是一个类,后缀名为.cs的文件

在该类中必须完成
*继承Control或WebControl类
*替换CreateChildControls方法
*实现INamingContainer接口
*替换Render方法(可选)

可将自定义的控件加入到Visual Studio的工具箱中

自定义服务器控件(Custom Server control)
同样是后缀名为.cs的文件

通过替换Render方法自己设计服务器控件界面,而不是CreateChildControls方法创建控件

可以使用BindableAttribute,CategoryAttribute,DefaultValueAttribute等类或自定义属性类,定义自己的控件属性