我有源碼,要的話給個郵箱,我給妳發過去。
不過在這裏我先說下大體思路,希望對妳有幫助:
圖片中顯示的每壹個顏色區域用壹個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?=?sender?as?Panel;
if?(p?!=?null)
{
hatchColor?=?p.BackColor; if(ColorChanged?!=?null) ColorChanged(this,?new?ColorChangedEventArgs(hatchColor)); }}