我正在使用登录功能进行项目
当我运行项目时,有一个表单(form1
)运行登录。
在我点击登录按钮后构建另一个表单(form2
) - 这是我的程序的形式。
并将第一个表单(form1
)隐藏起来。
问题是当我按下form2中的X按钮时它已关闭但是form1仍在运行。
我尝试关闭form1
而不是隐藏...但这会在启动之前关闭form2
在form1
:
this.Hide();
Form2 x = new Form2();
x.Show();
答案 0 :(得分:5)
我认为你的表格形式错误。
Form1应该是你的应用程序,并在第一次加载时将Form2显示为对话框,然后当它关闭时,你可以处理结果并决定是继续还是关闭应用程序。
类似的东西:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Load += new EventHandler(Form1_Load);
}
void Form1_Load(object sender, EventArgs e)
{
Form2 myDialog = new Form2();
if (myDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
{
// failed login
// exit application
}
// all good, continue
}
}
答案 1 :(得分:1)
您可以订阅子表单FormClosed
事件,并使用该表单在父表单上调用Close
。
x.FormClosed += new FormClosedEventHandler(x_FormClosed);
void x_FormClosed(object sender, FormClosedEventArgs e)
{
this.Close();
}
答案 2 :(得分:0)
尝试此操作,如果已授予访问权限,则在登录按钮中
private void logInBtn_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog();
this.Hide();
}
然后在form2中如果要退出
private void exitBtn_Click(object sender, EventArgs e)
{
Application.Exit();
}
希望这会有所帮助。
答案 3 :(得分:0)
如果表单中存在FormClosed,则转到form2。
将此代码放入eventhandler:
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
FormClosed是用户关闭表单时的事件。因此,当您关闭表单时,会放置一个代码,该代码将退出您的应用程序-applicationn.exit(); -
希望这会奏效。