weixin_40187983 2019-07-15 22:15 采纳率: 100%
浏览 340
已采纳

vb.net 动态开启指定form及 指定windowStatus

我有一个开启form的地方

其基本上都是一样的格式

不一样的地方在于,frm的名称 和 windowState状态

我想用function来实现

比如我function会返回给我 frmTest,Normal这两个参数

那我要自动生成或是打开以下的语法

frmTest.MdiParent=me
frmTest.show()
frmTest.windowState=formwidowstate.maximized

也就用代带的方式,然后打开被带入的form

图片说明

图片说明

  • 写回答

2条回答 默认 最新

  • wilson1966 2019-07-16 16:13
    关注

    如要动态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,但静态就要了,如有新增程序,要重新改程序,再编译程序。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站