在我的应用程序中,当用户点击标签打开表单时,表单会在后台打开。我的意思是它不会出现在前面,而是放在任务栏上。一旦用户取消该表单实例并再次单击标签,表单就会在前台打开。以下部分代码执行特定的工作。
if (DataFormDlg.Instance.InvokeRequired)
{
DataFormDlg.Instance.BeginInvoke(
new ShowDataFormDelegate(ShowDataForm), pageId, timeout);
return;
}
DataFormDlg.Instance.CurrentPageId = pageId;
DataFormDlg.Instance.Timeout = timeout;
if (!DataFormDlg.Instance.Visible)
DataFormDlg.Instance.ShowDialog();
else
DataFormDlg.Instance.Focus();
这里的DataFormDlg是从windows窗体派生的。
答案 0 :(得分:1)
将当前表单作为所有者传递给ShowDialog
方法。即使用户点击第一个表单,对话框表格也永远不会落后于第一个表单。
另一个结果是,当所有者表单关闭时,第二个表单会自动关闭。当使用Show
而不是ShowDialog
打开第二个表单时,此功能特别有用。
DataFormDlg.Instance.ShowDialog(this);
使用此重载版本:
public DialogResult ShowDialog(IWin32Window owner)