如何在c#中将Windows窗体放在前面



在我的应用程序中,当用户单击标签打开表单时,该表单将在后台打开。我的意思是它不会出现在前面,而是放在任务栏上。一旦用户取消该表单实例并再次单击标签,该表单就会在前台打开。下面的代码部分完成了具体的工作。

        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窗体派生的。

将当前表单作为所有者传递给ShowDialog方法。即使用户点击了第一个表单,对话框表单也永远不会落后于第一个表单

另一个结果是,当所有者表单关闭时,第二个表单自动关闭。当用Show而不是ShowDialog打开第二形式时,这尤其有用。

DataFormDlg.Instance.ShowDialog(this);

使用这个重载版本:

public DialogResult ShowDialog(IWin32Window owner)

最新更新