我正在使用WinForms。我有2種形式,Form1 (主表格)和Form2 (子表格)。當用戶點擊form2頂部的「X」按鈕時,我想關閉form1。在我的代碼中,我試圖通過說this.Owner.Close();
來關閉form1,但它會引發錯誤。爲什麼拋出這個錯誤,當用戶單擊窗體頂部的「X」按鈕時,如何關閉子窗體的主窗體。如果用戶點擊「X」按鈕,從子窗體關閉父窗體
錯誤
類型 'System.StackOverflowException' 的未處理的異常發生在System.Windows.Forms.dll中
表1
private void btn_Open_Form2_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Owner = this;
frm2.Show();
this.Hide();
}
窗體2
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
this.Owner.Close();
}
'Application.Exit();' – Xaqron
你關閉主人。這將關閉其擁有的窗戶。這將引發FormClosing事件。這將關閉所有者。這將關閉其擁有的窗戶。這將引發FormClosing事件。這將關閉所有者。這將關閉其擁有的窗戶。這將引發FormClosing事件。哪個... Kaboom。使用* bool *變量來中斷遞歸。或FormClosed事件。 –
你爲什麼要這麼做呢?這不是好用戶體驗。 – CodingYoshi