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