以下代码?如何将
Dim ls_frm As New Form2 中的“Form2”这个窗体的名字用变量传递进来并进行实例化
Private Sub aa(frmName As String, frmText As String)
'//定义变量,记录窗体是否已经打开
Dim ls_open As Boolean = False
'//遍历TabPage页,查看页面是否已经打开
For Each a As TabPage In TabControl1.TabPages
If a.Name = frmName Then
ls_open = True '如果查找到指定的页面
Me.TabControl1.SelectedTab = a '设置选中当前页
End If
Next
'//如果窗体没有打开,那么实例化并打开窗体
If ls_open = False Then
Dim ls_frm As New Form2 '//实例化一个窗体(窗体名称为form2)
Dim NewTabPage1 As New TabPage '//实例化一个tabpage页
NewTabPage1.Text = ls_frm.Text '//在tabpage页显示的页text内容
NewTabPage1.Name = frmName '//TabPage页的name
NewTabPage1.BackColor = Color.White '//tabPage页的背景色 设置为白色
Me.TabControl1.TabPages.Add(NewTabPage1) '//添加到当前的TabControl中
ls_frm.TopLevel = False '//设置窗体不是顶级窗体
ls_frm.Parent = NewTabPage1 '//设置窗体的父容器为新实例化的TabPage页
ls_frm.FormBorderStyle = Windows.Forms.FormBorderStyle.None '//设置新窗体不显示边框
ls_frm.Dock = System.Windows.Forms.DockStyle.Fill '//设置窗体的大小随父容器大小变化而变化
ls_frm.Show() '//装载窗体
Me.TabControl1.SelectedTab = NewTabPage1 '//将此TabPage页显示为选中
Else
'MessageBox.Show("窗体已经打开,不要重复打开此窗体!")
End If
曾经用以下指令 ,做过实验可以打开窗体
CType(System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(Reflection.Assembly.GetEntryAssembly.GetName.Name & ".Form2"), Form).Show()
用下面指令,给form2指定父容器为tabpage提示失败
CType(System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(Reflection.Assembly.GetEntryAssembly.GetName.Name & ".Form2"), Form).Parent = NewTabPage1
最终目的:用变量名吧窗体的名字传递进子模块呢,然后将传递进的窗体的名字进行实例化