• 自定义控件添加事件


    自定义控件界面 

    自定义窗体代码

    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() + "
    " + beginTime + "
    " + endTime;
                    item.UcName = "btn" + type + value;
                    item.Name = "btn" + type + value;
                    item.SetBtn_OnClick(Send);
    ..............
    }
      public void Send(object sender, EventArgs e)
    {
    //需要实现的业务逻辑
    }
  • 相关阅读:
    仿发送微博限制只发送140个字(一个汉字占位2字节)
    Linux下多任务间通信和同步-信号
    Color
    面试遇到的问题
    Jquery Mobile左右滑动效果
    C++ primer(八)--内联函数 引用变量 引用传递函数参数 函数重载/模板/模板具体化
    Python3 配置文件 解析
    Python MySQL ORM QuickORM hacking
    Python 获取 网卡 MAC 地址
    AttributeError: 'dict_values' object has no attribute 'translate'
  • 原文地址:https://www.cnblogs.com/YYkun/p/8615594.html
Copyright © 2020-2023  润新知