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;
 }
 }}
 }使用C#编写一个自定义控件
原创
             ©著作权归作者所有:来自51CTO博客作者biyusr216的原创作品,请联系作者获取转载授权,否则将追究法律责任        
            下一篇:winform 分页控件
 
            
        
                提问和评论都可以,用心的回复会被更多人看到
                评论
            
            
                    发布评论
                
            
            相关文章
        
        
- 
                    C#自定义控件的创建在编程过程中,现有的c#控件远远不能满足我们的需要,这时候就需要我们自己来开发控件了。本人在开发自定义控件时 c# 控件 自定义控件 项目实战 推送
 
 
                    













 
                    

 
                 
                    