Winforms 形式仍然是;最高的;虽然设置为false

Winforms 形式仍然是;最高的;虽然设置为false,winforms,forms,topmost,Winforms,Forms,Topmost,我不知道怎么解决这个问题。我有一个通过Form1打开的Form2。虽然选项“TopMost”设置为“false”,但Form2仍在前景中。在某个地方单击Form1不会产生任何效果。有没有办法解决这个问题,当点击打开窗体的按钮时,让窗体2再次弹出到前台 private void button_Click(object sender, EventArgs e) { if (form2.Visible == false) { form2 = new Form2(this

我不知道怎么解决这个问题。我有一个通过Form1打开的Form2。虽然选项“TopMost”设置为“false”,但Form2仍在前景中。在某个地方单击Form1不会产生任何效果。有没有办法解决这个问题,当点击打开窗体的按钮时,让窗体2再次弹出到前台

private void button_Click(object sender, EventArgs e)
{
    if (form2.Visible == false)
    {
        form2 = new Form2(this);
        form2.Show(this);
    }
}

我的心灵调试器说你创建了一个拥有的窗口,它总是与所有者重叠。使用Show()而不是Show(owner)来显示它。
Form2
是无模式打开的(使用
Show()
)还是模式打开的(使用
ShowDialog()
)?。如果是modally,则它不是“最上面的”,但您不能选择任何其他窗口。如果是无模式的,那么您可能会将所有者设置为
Form1
我如何才能找到所有者?我用“form2.Show(this);”来调用表单,但我认为我的Form1已经是所有者了,所以即使我将Form1 TopMost设置为true,它也不会改变,这正是我的调试器所预测的。使用
form2.Show(),删除此项。