自定义控件:仿绘图工具中的颜色拾取

 

1.,自定以控件名称:ColorHatch

2.,界面:上方五个Pannel,下方一个按钮,单击弹出颜色框,选择的新颜色会显示在最上方的Pannel中。

3,定义两个属性,一个代表用户选择的颜色,一个代表用户选择时触发的事件。

 private Color hatchColor;

a

        #region     自定义属性

        [Description("设置当前颜色")]

        [DefaultValue(typeof(Color),"Black")]

        public Color HatchColor

        {

            get 

            {

                return panel1.BackColor; 

            }

            set 

            { 

                hatchColor = value;

                panel1.BackColor = hatchColor;

            }

        }

        #endregion

b  public delegate void ChangedColorHandler(object sender,ColorChangedEvents e);

        [Description("当面板颜色改变时,触发")]

        public event ChangedColorHandler ColorChanged;

        

//程序内部调用。

         Private void ChangedColor(ColorChangedEvents e)

        {

            if (ColorChanged != null)

            {

                ColorChanged(this, e);

            }

        }

//定义改变颜色的事件参数

    public class ColorChangedEvents : EventArgs

    {

        private Color myColor;

        public ColorChangedEvents(Color color)

        {

            myColor = color;

        }

        public Color CurrentColor

        {

            get

            {

                return myColor;

            }

        }

    }

c,单击按钮选择新颜色或者单击选择已有颜色

 private void button1_Click(object sender, EventArgs e)

        {

            ColorDialog colorDialog = new ColorDialog();

            colorDialog.Color = panel1.BackColor;

            if (colorDialog.ShowDialog() == DialogResult.OK)

            {

                panel1.BackColor = colorDialog.Color;

                //触发颜色改变事件

                ChangedColor(new ColorChangedEvents(this.HatchColor));

            }

        }

   private void panel5_Click(object sender, EventArgs e)

        {

            Panel panel = sender as Panel;

            if (panel != null)

            {

                panel1.BackColor = panel.BackColor;

                ChangedColor(new ColorChangedEvents(this.HatchColor));

            }

        }

4,以后使用该控件时,可以绑定颜色改变时的事件处理程序,可以获得选中的颜色。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值