大家好:
想詢問程式一執行,form1跟form2跳出,form2按取消跟叉叉 form1關閉,為什麼要加Application.Exit(); 才能將整個程式關掉,單寫.close(); form1會變縮小視窗
這樣寫法是否正確? 謝謝
program.cs
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
form1.cs
private void Form1_Load(object sender, EventArgs e)
{
this.Enabled = false; //form1 disabled
Form2 form2 = new Form2 ();
this.WindowState = FormWindowState.Maximized;
form2.TopMost = true;
form2.Show();
}
form2.cs
private void Cancel_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.Close();
this.Close();
Application.Exit();
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
你的Form2的Cancel_Click是新增一個Form1物件,
而不是原本那個Form1,
所以無法把原本的Form1關閉,
而你在Form1_Load的時候把自己最小化,
所以關閉Form2之後留下來的是最小化的原本那個Form1,
你可以嘗試在new Form2的時候把自己帶入,
new Form2(this)
然後在Form2的建構式記錄這個Form1,
private Form1 form1;
public Form2(Form1 form)
{
form1 = form;
}
然後在Form2的Cancel_Click把這個form1關閉試試
form1.close();
沒有實際試過,
不過這樣應該可行.