winform显示前台窗口替换临时表单对话框

时间:2017-09-11 08:20:09

标签: c# .net winforms

我有一个WinForm程序,有两个Form.form1是主窗体,看一个套接字端口。当请求到达时,显示from1:

 this.Show();
 this.ShowInTaskbar = true;

当用户点击form1' s按钮时,我隐藏了1 show form2:

        this.Hide();
        this.ShowInTaskbar = false; 
        From2 form = new     From2 (info);       
        var value = form.ShowDialog();

到目前为止正常。当From2点击OK,我想再次显示Form1,但Form1经常被其他程序覆盖:

if (DialogResult.OK == value)
        {
            reponse();
        }

         this.Show();
        this.ShowInTaskbar = true;

我希望form1 show似乎取代form2 position.how我可以吗?

1 个答案:

答案 0 :(得分:1)

您应该致电ShowDialog将当前表单作为所有者传递:

var value = form.ShowDialog(this);

执行此操作而不是隐藏form1。这使两个表单在Windows Z-Order中保持链接在一起并自动禁用form1上的输入,同时form2显示在其上方。因此,当用户执行form2的任何活动时,即使之前已在Z顺序中丢失,当他们将form2带到前面时,form1也会也来了。