我有一个开启form的地方
其基本上都是一样的格式
不一样的地方在于,frm的名称 和 windowState状态
我想用function来实现
比如我function会返回给我 frmTest,Normal这两个参数
那我要自动生成或是打开以下的语法
frmTest.MdiParent=me
frmTest.show()
frmTest.windowState=formwidowstate.maximized
也就用代带的方式,然后打开被带入的form
我有一个开启form的地方
其基本上都是一样的格式
不一样的地方在于,frm的名称 和 windowState状态
我想用function来实现
比如我function会返回给我 frmTest,Normal这两个参数
那我要自动生成或是打开以下的语法
frmTest.MdiParent=me
frmTest.show()
frmTest.windowState=formwidowstate.maximized
也就用代带的方式,然后打开被带入的form
如要动态show Form ,要先实例化(CreateInstance)
这边示范一个专案
建立名为WinFormVB01 项目
新增MDIParent1.vb 父form
新增名为 Form1 的Form
将此项目的启动的Form 由Form1 改为MDIParent1
在MDIParent1 下建立以下的函数
Private Sub ShowForm(ChildFormName As String, FormText As String, FormName As String)
Dim ChilForm As Form = New Form()
ChilForm = CType(Activator.CreateInstance(Type.GetType("WinFormVB01." & ChildFormName)), Form)
ChilForm.MdiParent = Me
ChilForm.Text = FormText
ChilForm.Name = FormName
ChilForm.WindowState = FormWindowState.Maximized
ChilForm.Show()
End Sub
这个ShowForm 函数有3个参数
参数1: ChildFormName 对象名
参数2: FormText Form 显示文字
参数3: FormName Form 的名称
在MDIParent1 里任一menu 的事件中,写以下VB程序
ShowForm("Form1", "frmTest01", "Test")
执行此项目
点击这个menu
Form1 就会show 出来
达成我们动态显示Form 的目的
楼下的是静态显示form
敝人是动态显示form
二者有一点差异
以动态显示来讲,它可不管未来Form name是什么,只要呼叫此函数即可show Form,但静态就要了,如有新增程序,要重新改程序,再编译程序。