VB.net 加载窗体 form2.show() 卸载窗体 me.close()加载窗体和VB没啥区别,而卸载就截然不同了。附:VB 加载窗体 form2.show 卸载窗体 unload me
创新互联建站主营浦口网站建设的网络公司,主营网站建设方案,APP应用开发,浦口h5成都微信小程序搭建,浦口网站营销推广欢迎浦口等地区企业咨询
同LS,“加载”是什么意思
单是加载的话,
非托管的用API
LoadLibrary
托管的用
Assembly类的几个静态方法
不过你要怎么“显示”呢
比如,我写一个dll,里面就一个函数,Function
Sum(Byval
a
As
Integer,Byval
b
As
Integer)
As
Long。你怎么显示呢?
“加载”dll的方法是通用的
但是“使用”(包括你所说的显示)dll要具体情况具体分析。除了一些分析dll的通用软件,大多数时候都要根据dll中提供的函数来决定。
比如VS的工具箱,可以“加载”控件的dll,但不能“加载”user32.dll
尽量丢掉vb6的习惯,注意对象的作用域及垃圾回收机制,为对象设定适当的范围,如全局对象下面给个示例(从sub main启动):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
直接添加一个MID父窗体或在已有窗体的属性中找到IsMDIContainer属性,然后设置为True,然后创建第二个窗体 ,需要加载子窗体的时候:
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子窗体,则创该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子窗体,设为激活 并退出循环
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
你这个要求实在是不对路子。是思路不对。
应该是将窗体一和窗体二中的控件分别用一个panel装起来,设为隐含状态。都放在主窗体的panel1中。
点击 窗体一时,第一个panel的Visible=True,第二个panel的Visible=False
点击 窗体二时,第一个panel的Visible=False,第二个panel的Visible=True
就达到你要的效果了。
窗体不能装来装去的。
再有一个方法就是创建自定义控件。那个说起来太麻烦,看看书吧。
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
你可以先隐藏窗体 让他加载完 再显示出来 如上代码 如果还不够时间 可以适当增加