form1(乙個名為「開啟form2」的button控制項)
form2(乙個名為「改變form1顏色「的button控制項)
啟動時,form1中點選button控制項「開啟form2」」使form2顯示出來。
點選form2中的「改變form1顏色」後,form1中顏色改變。
完整**
1using
system;
2using
system.collections.generic;
3using
system.componentmodel;
4using
system.data;
5using
system.drawing;
6using
system.linq;
7using
system.text;
8using
system.windows.forms;910
namespace
delegate
1119
20public
event
changeformcolor changecolor;
2122
private
void button1_click(object
sender, eventargs e)
2326
}27 }
1using
system;
2using
system.collections.generic;
3using
system.componentmodel;
4using
system.data;
5using
system.drawing;
6using
system.linq;
7using
system.text;
8using
system.windows.forms;910
namespace
delegate
1118
19private
void button1_click(object
sender, eventargs e)
2025
26void f_changecolor(bool
topmost)
2731
}32 }
一、在form2裡面:
首先宣告乙個委託和委託例項
form2類外
1public
delegate
void changeformcolor(bool topmost);
form2類裡
1public
event changeformcolor changecolor;
form2的按鈕事件中呼叫委託
1private
void button1_click(object
sender, eventargs e)
2
二、在form1裡面:
button控制項「開啟form2「的click事件中有下面的**:
1
f.changecolor += new changeformcolor(f_changecolor);
這句最關鍵,你輸入到+=之後,按兩下tab,他會自動給你生成**函式,如下:
1void f_changecolor(bool
topmost)
2
一、在form2裡面:
首先宣告乙個委託和委託例項
form2類外
[csharp]view plain
copy
public
delegate
void
changeformcolor(
bool
topmost);
form2類裡
[csharp]view plain
copy
public
event
changeformcolor changecolor;
form2的按鈕事件中呼叫委託
[csharp]view plain
copy
private
void
button1_click(
object
sender, eventargs e)
C 委託例項(跨窗體操作控制項)
今天研究了一下,在c 裡面卻是可以不用自定義訊息這麼複雜的方法來實現跨窗體呼叫控制項,c 有更好的辦法就是委託。效果描述 有兩個窗體,form1 乙個名為 開啟form2 的button控制項 和form2 乙個名為 改變form1顏色 的button控制項 啟動時,form1中點選button控制...
C 委託例項(跨窗體操作控制項)
在c 裡面卻是可以不用自定義訊息這麼複雜的方法來實現跨窗體呼叫控制項,c 有更好的辦法就是委託。效果描述 有兩個窗體,form1 乙個名為 開啟form2 的button控制項 和form2 乙個名為 改變form1顏色 的button控制項 啟動時,form1中點選button控制項 開啟form...
跨窗體操作控制項 委託例項
事件是一種特殊的委託,先宣告委託,在宣告事件就是建立委託物件,然後例項化委託物件 事件名 引數 訪問控制符如果是全域性的,那麼在其他類中是可以操作這個全域性的,建立物件例項化都是可以的,開啟新窗體時,在程式執行編譯時在主窗體對子窗體例項化的委託是已經註冊事件了的,委託的宣告例項化呼叫的語法要清楚,每...