用户自定义控件

用户控件开发
1.分类

组合控件: 在原有控件基础上,根据需要进行组合而形成一个新的控件  UserControl
 	
扩展控件: 在现在基础上,对它进行扩展:继承自原有控件,添加或扩展原有控件的性能
 
 自定义控件: 派生Control类,绘制全部由用户定义 

2.组合控件
①可视化外观
②添加新的属性 应用窗体上,修改属性值,就可以即时看到变化
③ 定义自定义的事件
Load 事件 应用窗体:Load事件 ----加载顺序:应用窗体:Load事件---- 用户控件 Load事件
新建用户自定义控件
在这里插入图片描述

//添加属性
private string _lblText;	//Label的文本
public string LblText
{
    
    
    get {
    
     return _lblText; }
    set
    {
    
    
        _lblText = value;
        lblContent.Text = _lblText;	//即刻关联
    }
}
private string _btnText;	//Button的文本
public string BtnText
{
    
    
    get {
    
     return _btnText; }
    set
    {
    
    
        _btnText = value;
        btnConfirm.Text = _btnText;
    }
}
//事件 调用:只能在自己内部调用 
public event Action<object, EventArgs> ShowMsg;
private void btnConfirm_Click(object sender, EventArgs e)
{
    
    
    if (ShowMsg != null)
        ShowMsg(sender, e);
}

自定义控件使用
在这里插入图片描述

private void FrmUserControl_Load(object sender, EventArgs e)
{
    
    
    userButton1.LblText = "eeee";
    userButton1.BtnText = "OK";
}
//事件
private void userButton1_ShowMsg(object sender, EventArgs e)
{
    
    
    MessageBox.Show("aaaa");
}

在这里插入图片描述

3.扩展控件
继承自原有控件提供 的类

新建类库 ButtonEx控件

 public class ButtonEx:Button
{
    
    
    private string _btnText;	//Button的文本
    public string BtnText
    {
    
    
        get {
    
     return _btnText; }
        set
        {
    
    
            _btnText = value;
            Text = _btnText; 	//BtnText属性和Text属性关联
        }
    }
   //重写事件
   protected override void OnClick(EventArgs e)
   {
    
    
       this.ForeColor = Color.Red;
       base.OnClick(e);
   }
}

自定义控件使用
在这里插入图片描述

private void buttonEx1_Click(object sender, EventArgs e)
{
    
    
     MessageBox.Show("OK");
 }

猜你喜欢

转载自blog.csdn.net/asdasd1fdsyrt/article/details/114236522