簡介:解釋所有我所試圖做的,數字告訴我的問題怪異的行爲
每當我打開一個新的子窗體的代碼(兩個功能)在我的申請中。我用來調用下面的函數。 (子表單可以有另一個孩子)
public void openNextForm(Form f1, Form f2)
{
f2.Owner = f1;
f2.WindowState = FormWindowState.Maximized;
f2.FormClosing += new FormClosingEventHandler(f_FormClosing);
f1.Hide();
f2.ShowDialog();
}
// When I close a child form by clicking cross or with ALT-F4
void f_FormClosing(object sender, FormClosingEventArgs e)
{
Form f = sender as Form;
f.Owner.Show();
}
關閉子窗體我用來顯示所有者/父窗體。它工作正常。
但在某些情況下,當它顯示關閉子窗體像
但這種形式的實際狀態是
我主人形式的一些控件(按鈕)被隱藏只有當我從複雜而冗長的子女形式(仍然在這種情況下,它有時可以正常工作)時,必須面對這種行爲。如果是簡單(小編碼)的子表單,行爲是正常的。
如果我按怪異運行得表格上的Alt鍵,從在實際狀態令人驚奇地
我試圖尋找這個問題,並發現了很多類似的,但最近我可以看到的是下面的,仍然是無法幫助我的人在的ShowDialog
C# Form Problem: new form losing control and randomly hiding
情況下,在使用從上面的鏈接下面的代碼,每當我打開一個子窗體,然後再次子窗體的情況。所有表格都隱藏起來。所以它不能很好地工作。
public void openNextForm(Form f1, Form f2)
{
f2.Owner = f1;
f2.Show();
f1.Hide();
f2.FormClosing += new FormClosingEventHandler(f_FormClosing);
}
使用標籤應該是一個解決方案,但我想保持形式單獨和關閉/隱藏期間在所有情況下一致的行爲/顯示
檢查回答了你的問題,下文稱,其中規定,你不應該向孩子表明之前隱藏父,而你沒有這樣做。 –
@Furqan我需要實際showdialog和對話框的情況下,我必須showdialog之前隱藏,否則兩種形式將顯示。儘管如此,我的表現仍然像我的代碼一樣。 – Sami
解決它或投票它使任何顯着。 – Sami