c# winform自定义控件和组件的开发使用——自定义Button按钮 (仿elememt组件)让桌面也充满web风格(三)

已经好久没更新博客了,跟着上篇讲一下,
上一篇讲述了属性的实现,这一篇讲诉一下基本事件的实现,

click事件

   /// 
        /// 按钮点击事件
        /// 
        [Description("按钮点击事件"), Category("自定义")]
        public event EventHandler BtnClick;

事件触发的条件是,当按钮按下并且释放时,触发事件那么就需要在mouseup事件中调用该事件

   private void ButtonText_MouseUp(object sender, MouseEventArgs e)
        {
            BtnClick?.Invoke(this, e);
            //等同于if (this.BtnClick != null)
           // BtnClick(this, e);
        }

此时一个按钮的模型就出来了

c# winform自定义控件和组件的开发使用——自定义Button按钮 (仿elememt组件)让桌面也充满web风格(三)_第1张图片
当初这种效果肯定是达不到商用要求的,
那么在交互上需要像element组件一样,鼠标进入,鼠标离开,鼠标按下,鼠标释放上做文章,

element颜色目前就扣了三个所以定义了三个style

   public enum ButtonStyles
    {
        /// 
        /// 无
        /// 
        None = 0,
        /// 
        /// 主要按钮
        /// 
        primary = 1,
        /// 
        /// 成功按钮
        /// 
        success = 2
    }

并且添加这三个属性

        [Description("按钮样式"), Category("自定义")]
        public virtual ButtonStyles ButtonStyles
        {
            get
            {
                return this._btnStyle;
            }
            set
            {
                this._btnStyle = value;
                Refresh();
            }
        }

界面显示
c# winform自定义控件和组件的开发使用——自定义Button按钮 (仿elememt组件)让桌面也充满web风格(三)_第2张图片
最后效果
c# winform自定义控件和组件的开发使用——自定义Button按钮 (仿elememt组件)让桌面也充满web风格(三)_第3张图片
图中黄点时录制软件的问题,下一篇讲imagebuttonc# winform自定义控件和组件的开发使用——自定义Button按钮 (仿elememt组件)让桌面也充满web风格(三)_第4张图片

你可能感兴趣的:(c# winform自定义控件和组件的开发使用——自定义Button按钮 (仿elememt组件)让桌面也充满web风格(三))