C#如何打开另一个新窗口的同时关闭自身窗口? C#如何打开另一个新窗口的同时关闭自身窗口?比如登陆后,把登陆窗口关掉 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Form2 fm = new Form();fm.Show();this.Hide(); this.Hide();会不会有影响?QQ也这样做? private void btLogin_Click(object sender, EventArgs e) { if (BLUI.checkLogin(UI)) { this.Hide(); MainFrm frm = new MainFrm(); frm.Show(); } else { MessageBox.Show("登录失败!"); txtName.Focus(); txtName.SelectAll(); } } 在Programs静态类中,使用以下代码实现:static void Main(){ if (new FrmLogin().ShowDialog().DialogResult != DialogResult.OK) return; Application.Run(new MdiForm());} Input FormMain = new Input(); FormMain.ShowDialog(); this.Hide();好象没用 你在登陆窗口的登陆按钮里用这个方法this.Hide(); 这个可以把登陆窗口隐藏了。 用hide()方法不好吧!后面还要处理它。 我是用button的,那new FrmLogin().ShowDialog().DialogResult 等于哪个值? 如果是写登录窗口,应在program类中以我贴出来的代码来处理比较合适。选择登录窗体里面的那个button,在属性中有一个DialogResult的下列框,选择OK即可。 [Quote=引用 11 楼 kssys 的回复:]引用 9 楼 lsd123 的回复:引用 4 楼 kssys 的回复: 在Programs静态类中,使用以下代码实现: static void Main() { if (new FrmLogin().ShowDialog().DialogResult != DialogResult.OK) return; Application.Run(new MdiForm()); } 我是用button的,那new FrmLogin().ShowDialog().DialogResult 等于哪个值? 如果是写登录窗口,应在program类中以我贴出来的代码来处理比较合适。 选择登录窗体里…我要在new FrmLogin().ShowDialog()里判断他是否是合法用户,怎么弄? Form2 fm = new Form(); fm.Show(); this.Hide(); 楼主看这个:.NET中窗体间相互访问的几种方式 有两种方式,一种是设置button的DialogResult 为DialogResult.OK,另一种方式是不设置button的DialogResult,这种方式的处理方法是在button_Click事件中验证用户,如果验证成功,设置this.DialogResult 为DialogResult.OK,否則return 不要用hide了吧,好像在后面一直占着资源也不太爽阿。可以使用多线程。另外,你可以改变启动窗体的顺序,先启动后面的窗体,设置visible为false,再启动登陆窗口,验证正确后,登陆窗体dispose掉,主窗体visible设置为true 我只知道 在数据库窗口页面中可输入open(w_window)close(this)不知这里面有 close方法没有?我想肯定没有! 有this.Close()方法,但这个方法不行 new FrmLogin().ShowDialog() 中没有DialogResult 这个属性 FrmLogin login=new FrmLogin(); if(login.ShowDialog()==DialogResult.OK) { Application.Run(new FrmMain()); }//验证密码是否正确的事,给FrmLogin界面去做就可以了 Form2 fform2 = new Form(); fform2 .Show(); this.Close(); //FrmLogin界面:private void btnOK_Click(object sender, System.EventArgs e)//确定{ if(密码错误) { MessageBox.Show("该用户名或密码错误!"); return; } this.DialogResult=DialogResult.OK;}private void btnCancel_Click(object sender, System.EventArgs e)//取消{ this.DialogResult=DialogResult.Cancel;} 好了,可以了谢谢各位,特别是kssys,min_jie 那就只能将主办面隐藏,不能将其关掉。。this.Hide();FrmLogin login=new FrmLogin();login.ShowDialog();this.Show(); 都是用!this.Hide();//***********处理新窗体。。//*********** this.Show(); FormMain.ShowDialog(); this.Hide();最好不要用hide()因为这个画面已经没有什么存在的价值了。就要释放资源,hide()是资源不释放的,最好用exit() 当前窗体不是启动窗体的话直接closeshow新窗体 这个是基于WinForm的吧,给予Web的如何实现? static void Main() { Form2 frm = new Form2(); frm.ShowDialog (); if (frm.DialogResult == DialogResult.OK) { Application.Run(new Form1()); } } 个人感觉hide方式不好,浪费资源在主界面之前调用对话框好了 此时你的Mdi主窗体中应该增加一个“切换用户”的菜单,当点击此菜单时,执行以下过程:FrmLogin login=new FrmLogin();if (login.ShowDialog()==DialogResult.OK){ //在此处添加登录用户改变后的代码}login.Dispose(); private void xcxx(){///登录成功this.Close(); Thread t = new Thread(new ThreadStart(RunMainForm)); t.SetApartmentState(ApartmentState.STA); t.Name = "Evaluation Main Application"; t.Start();}private void RunMainForm() { Application.Run(new MainForm()); }private void LoginForm_FormClosed(object sender, FormClosedEventArgs e) { if (this.sc != null) { this.sc.Close(); } Application.Exit(); } C#子窗体和主窗体通信问题! 请教各位,能否将如下代码转换到c# 小弟使用多线程及异步回调碰到了困难 list<string[])怎么初始化 如何让控件绑定到DataTable的 属性上 而 不是数据上? 菜鸟求助:在线等 :一个关于邮件发送的问题! 急急急!!! 菜鸟求助 c# 对注册表操作的一个简单的问题 C#能做OCX吗?怎样做? 我到底错在哪啊?(高分求教 送40分) 汗,关于treeview的,想了几天了,头痛啊!大家帮我看看代码 c# 如何控制针式打印机走纸 COM对象与其基础RCW分开后就不能再使用,如何解决?
fm.Show();
this.Hide();
QQ也这样做?
private void btLogin_Click(object sender, EventArgs e)
{
if (BLUI.checkLogin(UI))
{
this.Hide();
MainFrm frm = new MainFrm();
frm.Show();
}
else
{
MessageBox.Show("登录失败!");
txtName.Focus();
txtName.SelectAll();
}
}
{
if (new FrmLogin().ShowDialog().DialogResult != DialogResult.OK)
return;
Application.Run(new MdiForm());
}
FormMain.ShowDialog();
this.Hide();好象没用
这个可以把登陆窗口隐藏了。
我是用button的,那new FrmLogin().ShowDialog().DialogResult 等于哪个值?
如果是写登录窗口,应在program类中以我贴出来的代码来处理比较合适。
选择登录窗体里面的那个button,在属性中有一个DialogResult的下列框,选择OK即可。
引用 9 楼 lsd123 的回复:
引用 4 楼 kssys 的回复:
在Programs静态类中,使用以下代码实现: static void Main()
{
if (new FrmLogin().ShowDialog().DialogResult != DialogResult.OK)
return; Application.Run(new MdiForm());
}
我是用button的,那new FrmLogin().ShowDialog().DialogResult 等于哪个值?
如果是写登录窗口,应在program类中以我贴出来的代码来处理比较合适。
选择登录窗体里…
我要在new FrmLogin().ShowDialog()里判断他是否是合法用户,怎么弄?
fm.Show();
this.Hide();
.NET中窗体间相互访问的几种方式
有两种方式,一种是设置button的DialogResult 为DialogResult.OK,另一种方式是不设置button的DialogResult,这种方式的处理方法是在button_Click事件中验证用户,如果验证成功,设置this.DialogResult 为DialogResult.OK,否則return
可输入
open(w_window)
close(this)
不知这里面有 close方法没有?
我想肯定没有!
但这个方法不行
new FrmLogin().ShowDialog() 中没有DialogResult 这个属性
if(login.ShowDialog()==DialogResult.OK)
{
Application.Run(new FrmMain());
}
//验证密码是否正确的事,给FrmLogin界面去做就可以了
fform2 .Show();
this.Close();
private void btnOK_Click(object sender, System.EventArgs e)//确定
{
if(密码错误)
{
MessageBox.Show("该用户名或密码错误!");
return;
}
this.DialogResult=DialogResult.OK;
}private void btnCancel_Click(object sender, System.EventArgs e)//取消
{
this.DialogResult=DialogResult.Cancel;
}
FrmLogin login=new FrmLogin();
login.ShowDialog();
this.Show();
this.Hide();
//***********
处理新窗体。。
//***********
this.Show();
this.Hide();
最好不要用hide()
因为这个画面已经没有什么存在的价值了。就要释放资源,hide()是资源不释放的,最好用exit()
show新窗体
{
Form2 frm = new Form2();
frm.ShowDialog ();
if (frm.DialogResult == DialogResult.OK)
{
Application.Run(new Form1());
}
}
在主界面之前调用对话框好了
此时你的Mdi主窗体中应该增加一个“切换用户”的菜单,当点击此菜单时,执行以下过程:
FrmLogin login=new FrmLogin();
if (login.ShowDialog()==DialogResult.OK)
{
//在此处添加登录用户改变后的代码
}
login.Dispose();
{
///登录成功
this.Close();
Thread t = new Thread(new ThreadStart(RunMainForm));
t.SetApartmentState(ApartmentState.STA);
t.Name = "Evaluation Main Application";
t.Start();
}
private void RunMainForm()
{
Application.Run(new MainForm());
}private void LoginForm_FormClosed(object sender, FormClosedEventArgs e)
{
if (this.sc != null)
{
this.sc.Close();
}
Application.Exit();
}