我使用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();
}
答案 0 :(得分:0)
使用另一个Form
作为参数的ShowDialog
overload显示对话框。这会将对话框Owner
设置为该表单。 Owned forms始终显示在其所有者的顶部。
来自MSDN:
当表单由另一个表单拥有时,它将被关闭或隐藏 业主表格。例如,考虑一个名为Form2的表单 一个名为Form1的表单。如果Form1关闭或最小化,Form2也是 关闭或隐藏。 拥有的表单也永远不会显示在他们的后面 所有者表格。
以下代码通常已足够,但您可能需要根据打开对话框的位置修改参数。
someForm.ShowDialog(this);