Desarrollo del control de usuario
1. Clasificación
组合控件: 在原有控件基础上,根据需要进行组合而形成一个新的控件 UserControl
扩展控件: 在现在基础上,对它进行扩展:继承自原有控件,添加或扩展原有控件的性能
自定义控件: 派生Control类,绘制全部由用户定义
2. Control de combinación
① Apariencia
visual ②Añadir una nueva propiedad al formulario de solicitud, modificar el valor de la propiedad, puede ver los cambios inmediatamente
③ Definir un evento personalizado
Cargar evento Formulario de solicitud: Cargar evento ---- secuencia de carga: ventana de la aplicación Cuerpo: Cargar evento ---- Control de usuario Cargar evento para crear un nuevo control definido por el
usuario
//添加属性
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);
}
Uso de controles personalizados
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. El control extendido
hereda de la clase proporcionada por el control original
Nueva biblioteca de clases de control 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);
}
}
Uso de controles personalizados
private void buttonEx1_Click(object sender, EventArgs e)
{
MessageBox.Show("OK");
}