using System;
 using System.Collections;
 using System.ComponentModel;
 using System.Drawing;
 using System.Data;
 using System.Windows.Forms;namespace WindowsControlLibrary1
 { 
 
 /// 
 /// UserControl1 的摘要说明。
 /// 
 public class UserControl1 : System.Windows.Forms.UserControl
 { 
 
 /// 
 /// 必需的设计器变量。
 /// 
 private System.ComponentModel.Container components = null;/// 私有域
 private string MyText;
 //存储关联的事件处理方法;
 private EventHandler OnMyTextChanged;
 public UserControl1()
 { 
 
 // 该调用是 Windows.Forms 窗体设计器所必需的。
 InitializeComponent();// TODO: 在 InitializeComponent 调用后添加任何初始化
 MyText="Static Control";
 OnMyTextChanged=null;
 }/// 
 /// 清理所有正在使用的资源。
 /// 
 protected override void Dispose( bool disposing )
 { 
 
 if( disposing )
 { 
 
 if( components != null )
 components.Dispose();
 }
 base.Dispose( disposing );
 }#region Component Designer generated code
 /// 
 /// 设计器支持所需的方法 - 不要使用代码编辑器 
 /// 修改此方法的内容。
 /// 
 private void InitializeComponent()
 { 
 
 // 
 // UserControl1
 // 
  = "UserControl1";
 this.Size = new System.Drawing.Size(248, 128);
 this.Load += new System.EventHandler(this.UserControl1_Load);
 this.Paint += new System.Windows.Forms.PaintEventHandler(this.UserControl1_Paint);}
 #endregionprivate void UserControl1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
 { 
 
 SizeF textSize=e.Graphics.MeasureString(MyText,Font);
 float xPos=(ClientRectangle.Width/2)-(textSize.Width/2);
 float yPos=(ClientRectangle.Height/2)-(textSize.Height/2);
 e.Graphics.DrawString(MyText,Font,new SolidBrush(Color.Black),xPos,yPos);
 }private void UserControl1_Load(object sender, System.EventArgs e)
 { 
 }
//公开属性
 public String ControlText
 { 
 
 get
 { 
 
 return MyText;}
 set
 { 
 
 MyText=value;
 //重画
 Invalidate();
 //如果关联了事件处理方法,则调用该方法
 if(OnMyTextChanged!=null)
 { 
 
 OnMyTextChanged.Invoke(this,EventArgs.Empty);
 }
 }}
 //声明了一个公开事件
 public event EventHandler MyTextChanged
 { 
 
 add
 { 
 
 OnMyTextChanged+=value;
 }
 remove
 { 
 
 OnMyTextChanged=value;
 }
 }}
 }