C#中实现调色板功能!!求代码!

来源:百度知道 编辑:UC知道 时间:2024/05/13 06:59:41
我写了一个可以实现功能,但感觉不是太好。

看看大家是怎么做的,

再学习学习啦!!

我有源码,要的话给个邮箱,我给你发过去。

不过在这里我先说下大体思路,希望对你有帮助:

图片中显示的每一个颜色区域用一个panel(panel的背景色)表示

最上面大的区域表示当前选中的颜色。

其实这是一个继承至UserControl的自定义控件。

包含:

1.表示当前颜色的Color变量

2.颜色改变时触发的事件

public delegate void ColorChangedEvent(object sender,ColorChangedEventArgs e);

// 当颜色改变时触发事件

public event ColorChangedEvent ColorChanged;

3.其中的ColorChangedEventArgs为自定义事件,不过要继承至EventArgs基类。

其中只有一个颜色变量。给ColorChanged事件注册一个方法。

ColorChanged += new ColorChangedEventHandler(ColorHatch_ColorChanged);

颜色改变时要调用的方法:

private void ColorHatch_ColorChanged(object sender, ColorChangedEventArgs e)

{

     panel1.BackColor = e.Color;

}

4.在panel的鼠标点击事件中触发颜色改变事件,具体如下:

private void panel_Click(object sender, EventArgs e)

{

    Panel p = s