C 委託例項(跨窗體操作控制項)

2022-06-24 14:24:10 字數 3117 閱讀 9694

今天研究了一下,在c#裡面卻是可以不用自定義訊息這麼複雜的方法來實現跨窗體呼叫控制項,c#有更好的辦法就是委託。

效果描述:有兩個窗體,form1(乙個名為「開啟form2」的button控制項)和form2(乙個名為「改變form1顏色「的button控制項)。啟動時,form1中點選button控制項「開啟form2」」使form2顯示出來。點選form2中的「改變form1顏色」後,form1中顏色改變。

一、在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)  

二、在form1裡面:

button控制項「開啟form2「的click事件中有下面的**:

[csharp]view plain

copy

f.changecolor += new changeformcolor(f_changecolor);

這句最關鍵,你輸入到+=之後,按兩下tab,他會自動給你生成**函式,如下:

[csharp]view plain

copy

void f_changecolor(bool topmost)  

三、完整**

[csharp]view plain

copy

using system;  

using system.drawing;  

using system.windows.forms;  

namespace 跨窗體呼叫控制項  

private void button1_click(object sender, eventargs e)  

void f_changecolor(bool topmost)  

}  }[csharp]view plain

copy

using system;  

using system.windows.forms;  

namespace 跨窗體呼叫控制項  

public event changeformcolor changecolor;  

private void button1_click(object sender, eventargs e)  

}  }  最後再給大家介紹一種最簡單的c#跨窗體操作

今天研究了一下,在c#裡面卻是可以不用自定義訊息這麼複雜的方法來實現跨窗體呼叫控制項,c#有更好的辦法就是委託。

效果描述:有兩個窗體,form1(乙個名為「開啟form2」的button控制項)和form2(乙個名為「改變form1顏色「的button控制項)。啟動時,form1中點選button控制項「開啟form2」」使form2顯示出來。點選form2中的「改變form1顏色」後,form1中顏色改變。

一、在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)  

二、在form1裡面:

button控制項「開啟form2「的click事件中有下面的**:

[csharp]view plain

copy

f.changecolor += new changeformcolor(f_changecolor);

這句最關鍵,你輸入到+=之後,按兩下tab,他會自動給你生成**函式,如下:

[csharp]view plain

copy

void f_changecolor(bool topmost)  

三、完整**

[csharp]view plain

copy

using system;  

using system.drawing;  

using system.windows.forms;  

namespace 跨窗體呼叫控制項  

private void button1_click(object sender, eventargs e)  

void f_changecolor(bool topmost)  

}  }[csharp]view plain

copy

using system;  

using system.windows.forms;  

namespace 跨窗體呼叫控制項  

public event changeformcolor changecolor;  

private void button1_click(object sender, eventargs e)  

}  }  最後再給大家介紹一種最簡單的c#跨窗體操作

C 委託例項(跨窗體操作控制項)

在c 裡面卻是可以不用自定義訊息這麼複雜的方法來實現跨窗體呼叫控制項,c 有更好的辦法就是委託。效果描述 有兩個窗體,form1 乙個名為 開啟form2 的button控制項 和form2 乙個名為 改變form1顏色 的button控制項 啟動時,form1中點選button控制項 開啟form...

C 委託例項 跨窗體操作控制項

form1 乙個名為 開啟form2 的button控制項 form2 乙個名為 改變form1顏色 的button控制項 啟動時,form1中點選button控制項 開啟form2 使form2顯示出來。點選form2中的 改變form1顏色 後,form1中顏色改變。完整 1 using sys...

跨窗體操作控制項 委託例項

事件是一種特殊的委託,先宣告委託,在宣告事件就是建立委託物件,然後例項化委託物件 事件名 引數 訪問控制符如果是全域性的,那麼在其他類中是可以操作這個全域性的,建立物件例項化都是可以的,開啟新窗體時,在程式執行編譯時在主窗體對子窗體例項化的委託是已經註冊事件了的,委託的宣告例項化呼叫的語法要清楚,每...