C#中使用自定義消息
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
C# WinForm編程中,你是否遇到過這樣的問題,在主窗口Form1中點(diǎn)擊按鈕,彈出一個(gè)子窗口Form2,你希望在Form2中調(diào)用Form1的函數(shù),改變Form1的顯示,卻發(fā)現(xiàn)Form1不聽話,達(dá)不到預(yù)期效果。有的人說我調(diào)試了的,那段函數(shù)確實(shí)執(zhí)行了,怎么還是沒有顯示呢?
其實(shí)Form1不聽話是必然的,你在Form2中new Form1(),這樣新新建了一個(gè)窗口對(duì)象,和本身的父窗口是兩個(gè)不同的對(duì)象,你改變對(duì)象A怎么能期望對(duì)象B也變化呢? 那有沒有什么辦法可以實(shí)現(xiàn)我們預(yù)期的效果呢? 有的,那就是利用win32函數(shù),使用自定義消息,做C++的人對(duì)這個(gè)應(yīng)該不陌生,下面就給大家講一下C#自定義消息。 消息發(fā)送方 一、引入命名空間 [csharp] view plain copy
二、消息定義 [csharp] view plain copy
三、自定義結(jié)構(gòu)體 [csharp] view plain copy
四、重寫消息發(fā)送函數(shù) [csharp] view plain copy
五、獲取窗體句柄的函數(shù)引入 [csharp] view plain copy
六、消息發(fā)送 [csharp] view plain copy
消息接收方 一、引入命名空間 [csharp] view plain copy
二、消息定義 [csharp] view plain copy
三、重寫窗體的消息處理函數(shù)
[csharp] view plain copy
不知道大家在C#中有沒有更好的實(shí)現(xiàn)方法。 經(jīng)過研究,C#確實(shí)有方法可以更簡單的實(shí)現(xiàn)這個(gè)功能,請(qǐng)看C# 委托實(shí)例(跨窗體操作控件)
最后再給大家介紹一種最簡單的C#跨窗體操作
程序運(yùn)行示意:
該文章在 2017/5/27 14:59:49 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |