我有两张表格。在第一个表格的初始我有代码:
public App_Index()
{
InitializeComponent();
this.Hide();
Authorization loginForm = new Authorization();
loginForm.ShowDialog();
}
如果我按下Form2上的关闭按钮[X] - App_Index(Form1)Form do .Show();但是在Form2中没有关于此的代码。如果我在Form2上按[X],我想关闭Form1和Form2。我怎么能这样做?
答案 0 :(得分:2)
这个怎么样?如果对话框被取消,这将关闭当前表单。
public App_Index()
{
InitializeComponent();
this.Hide();
Authorization loginForm = new Authorization();
if (loginForm.ShowDialog() == DialogResult.Cancel)
Close();
}
答案 1 :(得分:0)
您可以处理FormClosing
事件:
private void Authorization_FormClosing( object sender, FormClosingEventArgs e )
{
if ( e.CloseReason == CloseReason.UserClosing )
{
Application.Exit();
}
}
答案 2 :(得分:0)
有几种不同的方法可以做到这一点。您可以使用Application.OpenForms
循环并关闭所需的表单。我会在Form2的Form_Closing
事件中执行此操作:
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
foreach(Form frm in Application.OpenForms)
{
if(f.Name == "Form1")
f.Close();
}
}
您也可以直接在OpenForms集合中访问表单并关闭它:
Application.OpenForms["Form1"].Close()