我正在構建一個應用程序,該應用程序顯示某個操作的模態對話框。該模式對話框使用Form構建,並具有作爲Owner的主應用程序窗口,該窗口作爲Form.ShowDialog方法中的參數傳遞。直到按下alt鍵纔會顯示模態常用對話框
當單擊按鈕時,該模式對話框需要產生一個通用對話框(FontDialog)。常見對話框也顯示爲模式窗口。
所以 「所有者層次」 是(A - > B表示A 「擁有」 B) MainApp - > ModalDialog - > FontDialog類
好了,問題是FontDialog類不顯示呢除非我按下ALT鍵。應用程序的行爲幾乎和預期的一樣,即當我調用FontDialog.ShowDialog()時,我無法將焦點設置到MainApp窗口和ModalDialog,但FontDialog只是「不可見」,直到我按下ALT鍵鍵)然後出現。
任何人都知道爲什麼會發生這種情況?我嘗試將FormDialog的Owner設置爲null(因此使用Desktop作爲所有者窗口),但它的行爲方式錯誤。
在此先感謝。
一些代碼 公共類SnapshotDialogView:表 {/// 唧唧歪歪
///
/// Button click handler
private void btnChangeFont_Click(object sender, EventArgs e)
{
// this.Owner == MainAppWindow
DialogResult result = fontDialog.ShowDialog(this);
if (DialogResult.Cancel == result)
return;
Presenter.ChangeLabelsFont(fontDialog.Font);
}
}
啊,是的,還有一兩件事。如果我在調用FontDialog.ShowDialog()之前隱藏了ModalDialogForm(代碼中的SnapshotDialogView),字體對話框顯示ok。
你能發佈一些代碼的這個真聲音不正常, – 2010-11-23 21:41:14
代碼是非常正常的,但這裏有雲 – 2010-11-23 22:22:59
好吧,它是「解決」,如果我在調用fontDialog.ShowDialog(this)之前隱藏ModalForm,但我不知道是什麼原因造成的這個。 :( – 2010-11-23 23:10:44