直接添加一個(gè)MID父窗體或在已有窗體的屬性中找到IsMDIContainer屬性,然后設(shè)置為True,然后創(chuàng)建第二個(gè)窗體 ,需要加載子窗體的時(shí)候:
10年積累的成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有慶元免費(fèi)網(wǎng)站建設(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
一、帶窗體的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é)果如下:
vb6建立主窗體的子窗體有兩種方法:
第一種方法是建立一個(gè)MDI窗體,然后把普通的form窗體設(shè)置成它的子窗體。
第二種方法是使用Windows API設(shè)置一個(gè)普通form窗體為另外一普通窗體的子窗體。
一、先來看看如何建立MDI窗體的子窗體:
1、啟動(dòng)vb6,新建一個(gè)標(biāo)準(zhǔn)EXE工程。
2、在“工程”菜單里選擇“添加MDI窗體”,
點(diǎn)擊“打開”,添加了一個(gè)MDIForm1窗體,
這步也可以工程窗口的窗體圖標(biāo)上右鍵完成。
3、在“工程”菜單里選擇“XXX 屬性”,
在彈出的窗口里把啟動(dòng)對(duì)象設(shè)成MDIForm1。
4、在form1的屬性窗口里,把MDIChild屬性設(shè)置為True。
5、在Private Sub MDIForm_Load()過程里添加form1.show。
6、運(yùn)行程序,看到設(shè)置已經(jīng)成功。
二、使用Windows API建立子窗體:
1、1、啟動(dòng)vb6,新建一個(gè)標(biāo)準(zhǔn)EXE工程。
2、在“工程”菜單里選擇“添加窗體”,
點(diǎn)擊“打開”,添加了一個(gè)form2窗體,
這步也可以工程窗口的窗體圖標(biāo)上右鍵完成。
3、雙擊form1窗體,在通用里加入以下windows API:
Private Declare Function SetParent Lib "user32.dll" ( _
ByVal hWndChild As Long, _
ByVal hWndNewParent As Long) As Long
4、在form1的Private Sub Form_Load()過程里加入
Form2.Show
SetParent Form2.hWnd, Form1.hWnd
Form2.Move 0, 0
5、運(yùn)行程序,可以看form2已經(jīng)是form1的子窗體了。
6、完整程序代碼如下:
Option Explicit
Private Declare Function SetParent Lib "user32.dll" ( _
ByVal hWndChild As Long, _
ByVal hWndNewParent As Long) As Long
Private Sub Form_Load()
Form2.Show
SetParent Form2.hWnd, Form1.hWnd
Form2.Move 0, 0
End Sub
VB用Show方法顯示窗體時(shí)使用style屬性為1,就可使顯示的窗體以模式窗體顯示。 Show 方法,用以顯示 MDIForm 或 Form 對(duì)象。不支持命名參數(shù)。 說明 如果調(diào)用 Show 方法時(shí)指定的窗體沒有裝載,Visual Basic 將自動(dòng)裝載該窗體。
dim 一個(gè)窗體 as new form
with 一個(gè)窗體
.location=...
.size=...'這里是設(shè)置窗體的位置等屬性
end with
一個(gè)窗體.show
軟件bug。vb.net創(chuàng)建是會(huì)有窗體進(jìn)行應(yīng)用的,沒有應(yīng)用就是軟件bug原因,需要用戶將軟件關(guān)閉,點(diǎn)擊系統(tǒng)修復(fù)下載,再打開軟件即可。