gpt4 book ai didi

c# - 如何在 winform 右上角单击(红色 X)按钮退出应用程序

转载 作者:太空狗 更新时间:2023-10-30 00:18:44 27 4
gpt4 key购买 nike

我的申请中有两种形式。 frmLoginfrmDash。登录后。我在点击登录按钮时隐藏 frmLogin。显示 frmDash 的广告。

frmDash中,有LogOut按钮。单击注销时,我正在使用 this.Close() 并显示登录表单。但是现在,如果我单击 frmLogin(red X) 按钮,整个应用程序不会终止。请给一些建议。我已经试过了。:

private void btnLogin_Click(object sender, EventArgs e)
{
try
{
this.Hide();

string Log_API = "http://api.retailbutton.co/WS/Service.php?Service=employeeLogin";
if (LoginUser(Log_API))
{
logIn_Status = "true";
GlolbalUtil.LogIn_Status = logIn_Status;
frmDash frmDash = new frmDash();
frmDash.Owner = this;
frmDash.Show();
txtUsername.Text = "";
txtPassword.Text = "";
//GlolbalUtil.accept_status = "1";
}
else
{
MessageBox.Show("Please Check Username and password");
FrmLogin frmLogin = new FrmLogin();
frmLogin.Owner = this;
frmLogin.Show();
}


}

frmDash 的注销按钮代码:

 private void button1_Click(object sender, EventArgs e)

{
GlolbalUtil.LogIn_Status = "false";
this.Close();
FrmLogin fl = new FrmLogin();
fl.Show();

}

最佳答案

当您登录并隐藏表单时,您会创建一个新的 frmDash 实例。然后当你注销时,你调用 this.close() 并创建另一个新的 FrmLogin 实例。不会回到 FrmLogin 的原始实例。

这意味着您将始终拥有您开始时使用的隐藏实例。(如果关闭新的 FrmLogin 实例,隐藏的 FrmLogin 仍然存在。)

您可以在 btnLogin_Click 中添加以下内容:

frmDash.ParentForm = this;

和 button1_Click 应如下所示:

private void button1_Click(object sender, EventArgs e){
GlolbalUtil.LogIn_Status = "false";
FrmLogin fl = (FrmLogin)this.Parent; //Prior it said ParentForm
this.Close();
fl.Show();
}

如果你实现这个,你将显示初始登录表单,当你关闭它时,你关闭了登录表单的初始实例。

@Edit 10:52 25-06-2015ParentForm 不能赋值并且是只读的。一种解决方案是将其分配给 Parent 或者也可以在 btnLogin_Click 中应用以下内容:

frmDash.Owner = this;

和 button1_Click:

private void button1_Click(object sender, EventArgs e){
GlolbalUtil.LogIn_Status = "false";
FrmLogin fl = (FrmLogin)this.Owner
this.Close();
fl.Show();
}

@Edit 08:16 29-06-2015(下一个问题)

private void btnLogin_Click(object sender, EventArgs e)
{
try
{


string Log_API = "http://api.retailbutton.co/WS/Service.php?Service=employeeLogin";
if (LoginUser(Log_API))
{
logIn_Status = "true";
GlolbalUtil.LogIn_Status = logIn_Status;
frmDash frmDash = new frmDash();
frmDash.Owner = this;

////If you hide here, you do not have to make
//a new instance when the if statement is not true.////
this.Hide();

frmDash.Show();
txtUsername.Text = "";
txtPassword.Text = "";
//GlolbalUtil.accept_status = "1";
}
else
{
MessageBox.Show("Please Check Username and password");

////Delete following////
//FrmLogin frmLogin = new FrmLogin();
//frmLogin.Owner = this;
//frmLogin.Show();
}


}

关于c# - 如何在 winform 右上角单击(红色 X)按钮退出应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31043968/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com