国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET中Form之間的互相調(diào)用

2024-07-10 12:56:06
字體:
供稿:網(wǎng)友


收集最實用的網(wǎng)頁特效代碼!


.net中form之間的互相調(diào)用



有了.net,以前的一些編程思想有了改變。記得在vb6的時代,我們經(jīng)常會建立幾個form然后直接利用load方法來調(diào)用。到了.net時代了,vb也引入了類的概念。所以窗體調(diào)用的方式也改變了。例如:




public frm as new form1



frm.show()




因為form1在這里是一個類,而不是一個對象。我們定義了一個form1類的對象frm,通過new方法將其實例化,并且顯示它。有時候初學(xué)者會使用:




public frm as form




這樣在使用frm的成員時會提示,沒有實例化的錯誤。new方法就是新建一個form1的實例。如果不使用new方法,則需要通過其它的手段將已經(jīng)創(chuàng)建的form1實例的句柄傳給frm對象。這樣做的好處是,我們可以見了很多個form1的對象,在程序中作為一個通用的form,當(dāng)然也可以只用一個。這時候很多人可以自然而然的去使用form1的公共成員。但是有時候需要在form1種使用form2的成員,這就要考慮到兩個form關(guān)系的問題。下面具一個例子:



在mfc的mdi類型的工程中,我們知道會有mainfrm和childfrm的概念。現(xiàn)在用一個.net的winform工程舉例。主框架是一個mainfrm(將其設(shè)為一個mdi容器),包含了frmhome,frmreport,frmoption等子窗體。程序開始時候,我們需要將frmhome等加載到mainfrm中。然后根據(jù)不同的消息顯示不同的子窗體。而且這些子窗體之間的成員也需要互相調(diào)用。這時候我們就該在mainfrm中定義幾個public的成員frmhome,frmreport,frmoption等。




public frmhome as new frmhome



public frmreport as new frmreport



public frmoption as new frmoption




 


private sub mainfrm_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load



    frmhome.mdiparent = me



    frmhome.show()



    frmhome.dock = dockstyle.fill



end sub




現(xiàn)在我們在frmreport中想要調(diào)用frmhome的成員,從下圖這個結(jié)構(gòu)中,我們就可以想到通過mainfrm來作為橋梁。可以在每個子窗體上定義一個主框架的對象,也可以定義一個全局變量用來保存mainfrm的句柄。











如果在子窗體上定義一個mainfrm的對象,我們需要把已經(jīng)創(chuàng)建好的程序主框架的句柄傳給這個對象:




dim pmainfrm as mainfrm



pmainfrm = ctype(me.mdiparent, mainfrm)




這樣我們就可以使用pmainfrm.frmhome的成員變量了。這有點類似在mfc的mdi中常用的定義一個pmainfrm的指針用來尋找主框架。




cmainframe* pmainfrm = (cmainframe*)gettoplevelframe();



cmainframe* pmainfrm = (cmainframe*)afxgetapp()->m_pmainwnd;




如果僅僅是兩個窗體之間的調(diào)用,也是可以使用的。只要知道兩個form之間的關(guān)系,通常都是child,parent,owner之類的關(guān)系。例如:




dim frm as form1



frm = ctype(me.owner, form1)





 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 庆云县| 恭城| 临夏县| 巨野县| 宁城县| 常山县| 民权县| 土默特右旗| 宁国市| 丰镇市| 南和县| 莒南县| 万载县| 海丰县| 平利县| 巴林左旗| 怀来县| 清新县| 曲周县| 贵德县| 微博| 云浮市| 九江县| 教育| 开化县| 赤峰市| 江城| 松江区| 天柱县| 永宁县| 武川县| 福清市| 永善县| 乐山市| 青冈县| 申扎县| 松原市| 诸城市| 汉川市| 黔南| 讷河市|