VB.net 加載窗體 form2.show() 卸載窗體 me.close()加載窗體和VB沒(méi)啥區(qū)別,而卸載就截然不同了。附:VB 加載窗體 form2.show 卸載窗體 unload me
創(chuàng)新互聯(lián)建站主營(yíng)浦口網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,APP應(yīng)用開(kāi)發(fā),浦口h5成都微信小程序搭建,浦口網(wǎng)站營(yíng)銷推廣歡迎浦口等地區(qū)企業(yè)咨詢
同LS,“加載”是什么意思
單是加載的話,
非托管的用API
LoadLibrary
托管的用
Assembly類的幾個(gè)靜態(tài)方法
不過(guò)你要怎么“顯示”呢
比如,我寫(xiě)一個(gè)dll,里面就一個(gè)函數(shù),F(xiàn)unction
Sum(Byval
a
As
Integer,Byval
b
As
Integer)
As
Long。你怎么顯示呢?
“加載”dll的方法是通用的
但是“使用”(包括你所說(shuō)的顯示)dll要具體情況具體分析。除了一些分析dll的通用軟件,大多數(shù)時(shí)候都要根據(jù)dll中提供的函數(shù)來(lái)決定。
比如VS的工具箱,可以“加載”控件的dll,但不能“加載”user32.dll
盡量丟掉vb6的習(xí)慣,注意對(duì)象的作用域及垃圾回收機(jī)制,為對(duì)象設(shè)定適當(dāng)?shù)姆秶?如全局對(duì)象下面給個(gè)示例(從sub main啟動(dòng)):public module sample public sub main() dim frm as new from1("sample form") frm.show windows.forms.application.run() end subend module public class form1 inherts windows.forms.form private btnnew as new windows.forms.button private btnclose as new windows.forms.button public sub new(byval text as string) me.text=text btnnew.text="new form" btnclose.text="exit" btnnew.location=new drawing.point(30,10) btnclose.location=new drawing.point(30,35) me.controls.add(btnnew) me.controls.add(btnclose) addhandler btnnew.click,addressof btnnew_click addhandler btnclose.click,addressof btnclose_click end sub private sub btnnew_click(byval o as object,byval e as eventargs) me.close() dim newform as new form1("new sample form") newform.show() end sub private sub btnclose_click(byval o as object,byval e as eventargs) windows.forms.application.exit() end subend class
直接添加一個(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
'如果沒(méi)有任何一個(gè)MDI子窗體,則創(chuàng)該MDI子窗體的窗體實(shí)例
Dim?MDIChildFrm?As?Windows.Forms.Form?=?MDIChildForm?'?定義MDI子窗體
MDIChildFrm.MdiParent?=?MDIForm?'指定父窗體
MDIChildFrm.Show()?'打開(kāi)窗體
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
'在打開(kāi)的窗體中沒(méi)檢測(cè)到則新建
Dim?MDIChildFrm?As?Windows.Forms.Form?=?MDIChildForm?'?定義MDI子窗體
MDIChildFrm.MdiParent?=?MDIForm?'指定父窗體
MDIChildFrm.Show()?'打開(kāi)窗體
End?If
End?If
End?Sub
你這個(gè)要求實(shí)在是不對(duì)路子。是思路不對(duì)。
應(yīng)該是將窗體一和窗體二中的控件分別用一個(gè)panel裝起來(lái),設(shè)為隱含狀態(tài)。都放在主窗體的panel1中。
點(diǎn)擊 窗體一時(shí),第一個(gè)panel的Visible=True,第二個(gè)panel的Visible=False
點(diǎn)擊 窗體二時(shí),第一個(gè)panel的Visible=False,第二個(gè)panel的Visible=True
就達(dá)到你要的效果了。
窗體不能裝來(lái)裝去的。
再有一個(gè)方法就是創(chuàng)建自定義控件。那個(gè)說(shuō)起來(lái)太麻煩,看看書(shū)吧。
Public?Class?Form1
Dim?I?As?Integer
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick
I?=?I?+?1
If?I?=?10?Then?Me.Show()
End?Sub
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
Me.Hide()
End?Sub
End?Class
你可以先隱藏窗體 讓他加載完 再顯示出來(lái) 如上代碼 如果還不夠時(shí)間 可以適當(dāng)增加