自定义控件界面
自定义窗体代码
public partial class QueueBtn2 : UserControl { #region 属性 private string ucFontSize; public string UCFontSize { get { return this.ucFontSize; } set { ucFontSize = value; //this.btnContent.Font = new Font(); } } private string ucValue; public string UCValue { get { return this.ucValue; } set { ucValue = value; this.btnContent.Text = ucValue; } } private string callType; public string CallType { get { return callType; } set { callType = value; } } private string ucName; public string UcName { get { return ucName; } set { ucName = value; this.btnContent.Name = ucName; } } private bool ucEnable; public bool UcEnable { get { return ucEnable; } set { ucEnable = value; if (ucEnable) this.btnContent.BackColor = Color.White; else this.btnContent.BackColor = Color.Gray; } } #endregion public QueueBtn2() { InitializeComponent(); } private EventHandler _btn_Click = null; /// <summary> /// 触发统计按钮委托 /// </summary> /// <param name="handler"></param> public void SetBtn_OnClick(EventHandler handler) { if (_btn_Click == null) { _btn_Click = handler; } else _btn_Click -= handler; } /// <summary> /// 统计按钮委托 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void BtnOnClick(object sender, EventArgs e) { if (_btn_Click != null) { _btn_Click(sender, e); } } public void btnContent_Click(object sender, EventArgs e) { //MessageBox.Show("Test"); try { BtnOnClick(this, e); } catch { return; } } }
使用窗体代码实现:
private void Add(QueueBtn2 item, int value, Panel panel, int colCount, string beginTime, string endTime, string type) { if (panel.Controls.Count == 0) { item.Location = new Point(UcMargin, UcMargin); item.UCValue = value.ToString() + "\n" + beginTime + "\n" + endTime; item.UcName = "btn" + type + value; item.Name = "btn" + type + value; item.SetBtn_OnClick(Send); .............. } public void Send(object sender, EventArgs e) { //需要实现的业务逻辑 }