您的位置:首页 > 编程语言 > C#

2004.7.15 [C#学习记录]使用C#编写一个自定义控件(高

2008-04-24 08:43 866 查看
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);}#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;}}}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐