[英]Problems with ShowDialog in C#
我使用 showdialog 來顯示模態窗口,但我在某些裝有 Windows XP 或 Windows 7 的計算機上遇到問題,父窗口在顯示第二個模態窗口后顯示在前面。 我的程序在 .NET 4 中。有什么建議嗎?
在我的主窗口中,我有一個帶有代碼的按鈕:
private void btnBox_Click(object sender, EventArgs e)
{
frmBox fBox = new frmBox();
fBox.ShowDialog();
}
我在按鈕內部 frmBox 中的代碼是:
private void btnSearch_Click(object sender, EventArgs e)
{
frmSearch fSearch = new frmSearch();
fSearch.ShowDialog();
}
使用將另一個Form
作為參數的ShowDialog
重載顯示對話框。 這會將對話框的Owner
設置為該表單。 擁有的表單始終顯示在其所有者的頂部。
來自 MSDN:
當一個窗體為另一個窗體所有時,它會與所有者窗體一起關閉或隱藏。 例如,考慮一個名為 Form2 的窗體,它由一個名為 Form1 的窗體所有。 如果 Form1 關閉或最小化,則 Form2 也會關閉或隱藏。 擁有的表單也永遠不會顯示在其所有者表單后面。
以下代碼通常就足夠了,但您可能需要根據打開對話框的位置修改參數。
someForm.ShowDialog(this);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.