自定义控件添加事件

时间:2022-08-31 08:15:17

自定义控件界面 

自定义控件添加事件

自定义窗体代码

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)
{
//需要实现的业务逻辑
}