vb.net中怎么关闭现有窗口,然后打开另一个窗口?

我项目的起始窗口是frmlogin,我想在用户登陆了以后,自动关闭frmlogin窗口,打开frmMain窗口。

Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click
If txtUsername.Text = "" Or txtPwd.Text = "" Then
MsgBox("请输入完整~!", , "确定")
Else
If CheckLogin.UserLogin(txtUsername.Text, txtPwd.Text) = 0 Then
MsgBox("输入信息有误,请验证~!", , "确定")
Else
UserName = txtUsername.Text
Me.Hide()
frmMain.Show()
End If
End If

End Sub

我是这样写的,但是关闭frmMain窗口后,虽然看不到frmLogin窗口,程序还在运行。
我又试了me.close()
这样会使整个程序关掉,而不会弹出frmMain
请问怎么办呢?

登陆按钮里写:
private void button1_Click(object sender, EventArgs e)
{

Form2 fo1 = new Form2();
fo1.Show();
this.Visible=false;
}

第2个窗体的关闭事件里写

private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}

这样就可以了

me.dispose(); 这个是释放本对象的资源,,有时候直接把这个对象就清理了,,登陆窗体如果是入口窗体的话,,这么写就等于Application.Exit();
直接关整个应用程序了

插红旗噢 我还去vs里敲了一下
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-11-21
'在模块中定义窗体全局变量
public FrmNow as form
'在每个窗体的加载过程中写代码
private sub Form_Load()
unload FrmNow
set FrmNow = me
end sub
第2个回答  2008-12-12
Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click
If txtUsername.Text = "" Or txtPwd.Text = "" Then
MsgBox("请输入完整~!", , "确定")
Else
If CheckLogin.UserLogin(txtUsername.Text, txtPwd.Text) = 0 Then
MsgBox("输入信息有误,请验证~!", , "确定")
Else
UserName = txtUsername.Text
Dim newThread As New Thread(AddressOf openFrmMenu)
newThread.Start()
Me.Close()
End If
End If

End Sub

Private Sub openFrmMain()
Dim frmMain As New frmMain
frmMain.Show()
End Sub

用新线程打开画面
第3个回答  2008-12-11
me.dispose();本回答被网友采纳
第4个回答  2008-12-12
用close()只关闭当前窗口
相似回答