用户控件开发
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");
}