簡體   English   中英

C# 中 ShowDialog 的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM