当前位置:编程学习 > C#/ASP.NET >>

VB.NET如何实现卸载一个窗体的同时加载另一个窗体??

VB.NET如何实现卸载一个窗体的同时加载另一个窗体?? --------------------编程问答--------------------


from1.Show() '加载from1窗体
Me.Close()   '本窗体卸载
--------------------编程问答-------------------- lz需要主动的还是被动引发的?
主动的就如同1楼那样,被动的则可以在被卸载窗体的FormClosing或FormClosed事件中打开另一窗体 --------------------编程问答-------------------- 2者都OK呵呵,不过启动窗体是不能卸载的,好像只能隐藏。 --------------------编程问答--------------------
引用 3 楼 hupublic 的回复:
2者都OK呵呵,不过启动窗体是不能卸载的,好像只能隐藏。

如果在工程属性里面把关机模式设为最后一个窗体关闭时,是可以关闭掉启动窗体的 --------------------编程问答--------------------
引用 1 楼 iwd7353099 的回复:
VB.NET code


from1.Show() '加载from1窗体
Me.Close()   '本窗体卸载


支持! --------------------编程问答--------------------
引用 3 楼 hupublic 的回复:
2者都OK呵呵,不过启动窗体是不能卸载的,好像只能隐藏。


从你“好像只能隐藏”中看出你可能是将登录窗体做为启动窗体了,不知道我说的对不对?
    其实这样做有时让我们很不满意,登录窗体一旦用完基本上也就不再用了,一直隐藏在那儿总是让人不舒服的,还占着内存(当然也不排除有时需要必须这么做的情况吧,在这儿只说想释放它的情况);
可如果在 frmMain 的 Load 中调用 frmLogin.showDialog 则 frmMain 也能看得见虽然它只能被看见,不能被操作,但还是不舒服;在发现 VB2008 中 MyApplication 的几个事件后这些问题应该就都解决了:

做法是这样的,首先举两个窗体的例子进行说明:如有一个主界面和登录界面(即 frmMain 与 frmLogin),如下:
1、启动窗体设置为 frmMain(因为 frmMain 自始至终都要展现在用户面前的)
2、在 MyApplication 的 MyApplication_Startup 方法中调用 frmLogin.showDialog(注意:一定是 showDialog,这样在 frmLogin 未调用 frmLogin.close 前,frmMain 始终会处于等待且未被激活的状态;否则 frmMain 将停止等待并展现在用户面前)

Public gbLoginOk As Boolean = False
Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
      '启动延时
      '检查“软件注册”,如未注册或注册错误,可调用 frmRegister.ShowDialog()
      '检查“数据库”连接配置,如未配置或配置错误可调用 frmDbConnSet.ShowDialog()
      '启动登录
        frmLogin.ShowDialog()  '在 frmLogin 窗体中登录成功时 gbLoginOk = true 就行了
       If gbLoginOk = False Then End
End Sub
--------------------编程问答-------------------- 在窗体关闭事件中,加载另一个窗体 --------------------编程问答-------------------- 太简单了..
unload me'卸载本窗体
Form2.show'加载Form2窗体 --------------------编程问答-------------------- to qwe4285525
VB.net与VB有点不一样,你说的方法是VB中的,VB.net这样好象不行,一楼正解 --------------------编程问答-------------------- 同意一楼。 --------------------编程问答-------------------- 支持一楼! --------------------编程问答-------------------- 一楼的OK,只是主窗体是不能关闭的,只能隐藏,不然会把程序关了 --------------------编程问答-------------------- 4楼正确 --------------------编程问答-------------------- me.hide()'本窗体隐藏
from1.ShowDialog() '加载from1窗体
Me.Close()   '本窗体关闭
--------------------编程问答-------------------- from1.Show()
Me.Close()'关闭当前的form --------------------编程问答-------------------- 6楼很正点,完全支持!! --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 在第一个要关闭的窗口的FormClosed事件里面写新开另一个窗口的代码


    Private Sub frmTest_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        frmNews.Show()
    End Sub
--------------------编程问答-------------------- 楼上的方法好些 --------------------编程问答--------------------     Private Shared SharedForm As Form

    Public Shared Sub main()
        SharedForm = New Form1
        SharedForm.Show()
        Application.Run()
    End Sub

    Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        SharedForm = New Form1
        SharedForm.Show()
    End Sub

--------------------编程问答-------------------- 需要在项目属性里把 应用程序框架的勾去掉

然后启动项设置为 sub main --------------------编程问答-------------------- form1 需要实例化调用

dim  frm as new form1
frm.show
me.close --------------------编程问答-------------------- --------------------编程问答--------------------
引用 1 楼 iwd7353099 的回复:
VB.NET code


from1.Show() '加载from1窗体
Me.Close()   '本窗体卸载
请不要忘记在后面加;这个是很重要的 --------------------编程问答-------------------- subform吧,子窗体,我新手前阵学习遇到过类似问题
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,