C# 如何使以前打开的表单在C中保持活动状态?

C# 如何使以前打开的表单在C中保持活动状态?,c#,winforms,C#,Winforms,我有两种表格,例如表格1和表格2 form1是父窗体,从form1我调用form2并显示它,但问题是当第二个form2窗体打开时,上一个窗体将处于非活动状态? 请告诉我如何同时激活多个表单。您如何显示第二个表单?听起来你是在以一种模态的方式展示它-你不想 您可能希望使用Form.Show而不是Form.ShowDialog。第一个窗体将沿另一个窗体的侧面显示窗体,而另一个窗体将暂停第一个窗体,直到您关闭第二个窗体。使用 Form.Show() 而不是 Form.ShowDialog() 将f

我有两种表格,例如表格1和表格2 form1是父窗体,从form1我调用form2并显示它,但问题是当第二个form2窗体打开时,上一个窗体将处于非活动状态?
请告诉我如何同时激活多个表单。

您如何显示第二个表单?听起来你是在以一种模态的方式展示它-你不想

您可能希望使用Form.Show而不是Form.ShowDialog。第一个窗体将沿另一个窗体的侧面显示窗体,而另一个窗体将暂停第一个窗体,直到您关闭第二个窗体。

使用

Form.Show()
而不是

Form.ShowDialog()

将form2的最顶层属性设置为true 然后使用form2.Show而不是ShowDialog

或 你可以像我一样在另一个线程中打开表单2

    private void ShowForm2()
        {
            new Form2().ShowDialog();
        }


        private void button3_Click(object sender, EventArgs e)
        {
            System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(ShowForm2));
            th.Start();
        }

将此代码复制并粘贴到第二个表单类中:

    protected override bool ShowWithoutActivation {
        get {
            return true;
        }
    }

看起来您是从表单2生成表单1,这是错误的。您应该从表单1生成表单2。请注意,如果两个表单要相互交互,则在第二个表单中使用另一个线程需要额外小心。是的,这是真的,我展示了可能的解决方案,我认为第一个解决方案将TopMost属性设置为true更好