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
//
this.Name = "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);
}
#endregion
private 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;
}
}
}
}