When you create any ASP.Net controls in a web part, you should override the CreateChildControls method. In the CreateChildControls method, you will instantiate each control, set its properties, create any necessary event handlers, and add the created child controls to the web part's Controls collection inherited from System.Web.UI.Control.
Finally, you can draw the output by overriding the RenderWebPart method.
The following codes shows a portion of the CreateChildControls method in C#.
protected Label lbError;
protected Label lbCustomerId;
/// <summary>
/// CreateChildControls
/// Override CreateChildControls to add
/// child ASP.NET controls to this Web Part.
/// </summary>
protected override void CreateChildControls()
{
//Lable that display error messages
lbError = new Label();
lbError.Visible = false;
lbError.ForeColor = Color.Red;
Controls.Add(lbError); //Add to controls list
//Lable that display Customer Id
lbCustomerId = new Label();
lbCustomerId.Visible = false;
Controls.Add(lbCustomerId); //Add to controls list
}
protected Label lbCustomerId;
/// <summary>
/// CreateChildControls
/// Override CreateChildControls to add
/// child ASP.NET controls to this Web Part.
/// </summary>
protected override void CreateChildControls()
{
//Lable that display error messages
lbError = new Label();
lbError.Visible = false;
lbError.ForeColor = Color.Red;
Controls.Add(lbError); //Add to controls list
//Lable that display Customer Id
lbCustomerId = new Label();
lbCustomerId.Visible = false;
Controls.Add(lbCustomerId); //Add to controls list
}