在 VB.NET 中,你編好的窗體僅僅是一個(gè)類而已,不像 VB6,窗體本身就是一個(gè)對(duì)象。就是說,如果要顯示窗體,你需要將你編的窗體類實(shí)例化對(duì)一個(gè)對(duì)象,然后再調(diào)用這個(gè)對(duì)象:
創(chuàng)新互聯(lián)建站主要從事網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)柞水,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
Dim frm As New frmDlg ' 將 frmDlg 窗體類實(shí)例化為對(duì)象 frmfrm.Show() ' 將實(shí)例化的對(duì)象顯示出來
直接添加一個(gè)MID父窗體或在已有窗體的屬性中找到IsMDIContainer屬性,然后設(shè)置為True,然后創(chuàng)建第二個(gè)窗體 ,需要加載子窗體的時(shí)候:
Dim NewMDIChild As New Form2
NewMDIChild.MdiParent = Me
NewMDIChild.Show()
Public?Shared?Sub?CheckMDIChildForm(ByVal?MDIForm?As?Windows.Forms.Form,?ByVal?MDIChildForm?As?Windows.Forms.Form,?ByVal?MDIChildFormName?As?String)
If?MDIForm.MdiChildren.Length??1?Then
'如果沒有任何一個(gè)MDI子窗體,則創(chuàng)該MDI子窗體的窗體實(shí)例
Dim?MDIChildFrm?As?Windows.Forms.Form?=?MDIChildForm?'?定義MDI子窗體
MDIChildFrm.MdiParent?=?MDIForm?'指定父窗體
MDIChildFrm.Show()?'打開窗體
Exit?Sub
Else
Dim?x?As?Integer
Dim?frmyn?As?Boolean
For?x?=?0?To?(MDIForm.MdiChildren.Length)?-?1
Dim?tempChild?As?Windows.Forms.Form?=?CType(MDIForm.MdiChildren(x),?Windows.Forms.Form)
If?tempChild.Name?=?MDIChildFormName?Then
'檢測(cè)到有該MDI子窗體,設(shè)為激活?并退出循環(huán)
frmyn?=?True
tempChild.BringToFront()
Exit?For
Else
frmyn?=?False
End?If
Next
If?Not?frmyn?Then
'在打開的窗體中沒檢測(cè)到則新建
Dim?MDIChildFrm?As?Windows.Forms.Form?=?MDIChildForm?'?定義MDI子窗體
MDIChildFrm.MdiParent?=?MDIForm?'指定父窗體
MDIChildFrm.Show()?'打開窗體
End?If
End?If
End?Sub
既然子窗體都有同名函數(shù),就應(yīng)該對(duì)子窗體進(jìn)行一層封裝,子類實(shí)現(xiàn)不同方法
Public?MustInherit?Class?AbstractChild
Public?MustOverride?Sub?Method1()
End?Class
Public?Class?ChildClass1
Inherits?AbstractChild
Public?Overrides?Sub?Method1()
MessageBox.Show("class1")
End?Sub
End?Class
Public?Class?ChildClass2
Inherits?AbstractChild
Public?Overrides?Sub?Method1()
MessageBox.Show("class2")
End?Sub
End?Class
Public?Class?ChildClass3
Inherits?AbstractChild
Public?Overrides?Sub?Method1()
MessageBox.Show("class3")
End?Sub
End?Class
Dim?child1?As?New?ChildClass1()
Dim?child2?As?New?ChildClass2()
Dim?child3?As?New?ChildClass3()
child1.Method1()
child2.Method1()
child3.Method1()
一、帶窗體的dll創(chuàng)建
1、先新建 類庫(testdll),在項(xiàng)目中添加兩個(gè)窗體form1(主窗體)、form2,為了與后面的調(diào)用區(qū)分分別命名為fm1,fm2;并在fm1窗體中添加一個(gè)按鈕用來調(diào)用fm2如下圖
2、在fm1窗體代碼中先引用fm2, ? ?按鈕代碼調(diào)用fm2.如圖
3、生成dll,(class1.vb中不需要寫任何代碼)
二、調(diào)用dll
1、新建 一個(gè)windows應(yīng)用程序并添加一個(gè)按鈕用來調(diào)用dll中的窗體,選 擇 “項(xiàng)目”-“添加引用”,選擇剛才創(chuàng)建的testdll
2、窗體代碼中先引用testdll,再定義一個(gè)testdll中的fm1對(duì)象,最后執(zhí)行對(duì)象的show方法
3、運(yùn)行結(jié)果如下:
1,添加一個(gè)模塊,在模塊里聲明一個(gè)全局公共變量N;
2,在控件的調(diào)用窗體代碼段里,把此控件名稱給這個(gè)全局公共變量N賦值;
3,在窗體的Load()事件里,寫代碼: Me.Text = N。
當(dāng)前標(biāo)題:Vb.net調(diào)用子窗體 vb窗體控件
文章起源:http://www.muchs.cn/article8/dosedip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、服務(wù)器托管、虛擬主機(jī)、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)