iT邦幫忙

0

winform 主表單由次表單關掉

  • 分享至 

  • xImage

大家好:
想詢問程式一執行,form1跟form2跳出,form2按取消跟叉叉 form1關閉,為什麼要加Application.Exit(); 才能將整個程式關掉,單寫.close(); form1會變縮小視窗
這樣寫法是否正確? 謝謝
https://ithelp.ithome.com.tw/upload/images/20200910/20097057GtCqiNez7K.png
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();
        }
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
小魚
iT邦大師 1 級 ‧ 2020-09-10 23:11:10
最佳解答

你的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();

沒有實際試過,
不過這樣應該可行.

mayyola iT邦研究生 2 級 ‧ 2020-09-12 11:08:03 檢舉

謝謝您 可以了 我在研究一下~

我要發表回答

立即登入回答