chinaqdl21 2021-11-04 10:54 采纳率: 100%
浏览 92
已结题

vb.net如何将变量名作为一个窗体的名字实例化

以下代码?如何将
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

最终目的:用变量名吧窗体的名字传递进子模块呢,然后将传递进的窗体的名字进行实例化

  • 写回答

1条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 11月13日
      • 已采纳回答 11月5日
      • 创建了问题 11月4日

      悬赏问题

      • ¥25 接口/特征方法的异常错误返回如何判断是否需要设计
      • ¥40 代码+预测分析,文件私信发哦(价格可商量)
      • ¥15 GAMES101 HW1 无法定义
      • ¥15 pycharm不管允许什么代码都出错,都会出现下面的情况。
      • ¥15 boost::integrate的用法
      • ¥20 51单片机输出pwm时无法调节频率,如何解决?
      • ¥15 DSP28335 AD采集正弦波
      • ¥50 pwwinauto调式修改
      • ¥30 关于#单片机#的问题:单片机基于51单片机开发计时器,使其实现以下功能:(1)开发板上四个独立按键分别控制计时器的启停、计时器的复位(按下计时值归零)、计时位切换、计时时间的递增
      • ¥15 看个代码。做个详细的解说