VB.NET如何实现卸载一个窗体的同时加载另一个窗体??
VB.NET如何实现卸载一个窗体的同时加载另一个窗体?? --------------------编程问答----------------------------------------编程问答-------------------- lz需要主动的还是被动引发的?
from1.Show() '加载from1窗体
Me.Close() '本窗体卸载
主动的就如同1楼那样,被动的则可以在被卸载窗体的FormClosing或FormClosed事件中打开另一窗体 --------------------编程问答-------------------- 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 Shared SharedForm As Form
Private Sub frmTest_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
frmNews.Show()
End Sub
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 --------------------编程问答-------------------- --------------------编程问答-------------------- 请不要忘记在后面加;这个是很重要的 --------------------编程问答-------------------- subform吧,子窗体,我新手前阵学习遇到过类似问题
补充:.NET技术 , VB.NET