C#:打开的表单副本

C#:打开的表单副本,c#,.net,winforms,C#,.net,Winforms,我只有一个按钮可以在主窗体中打开另一个窗体。 我的问题是,如果我再次单击同一按钮,它会再次打开另一个表单 我希望再次单击按钮时不要打开另一个表单,而是将打开的表单定位到中心或原始开始位置。无需清除写入的文本。您可以查看并检查是否有第二个表单的打开实例,显示它,或者创建第二个表单的实例并显示它: private void button1_Click(object sender, EventArgs e) { var f = Application.OpenForms.OfType<F

我只有一个按钮可以在主窗体中打开另一个窗体。 我的问题是,如果我再次单击同一按钮,它会再次打开另一个表单

我希望再次单击按钮时不要打开另一个表单,而是将打开的表单定位到中心或原始开始位置。无需清除写入的文本。

您可以查看并检查是否有第二个表单的打开实例,显示它,或者创建第二个表单的实例并显示它:

private void button1_Click(object sender, EventArgs e)
{
    var f = Application.OpenForms.OfType<Form2>().FirstOrDefault();
    if (f == null)
    {
        f = new Form2();
        f.StartPosition = FormStartPosition.CenterScreen;
        f.Show();
    }
    f.Activate();
}
private void按钮1\u单击(对象发送者,事件参数e)
{
var f=Application.OpenForms.OfType().FirstOrDefault();
如果(f==null)
{
f=新的形式2();
f、 StartPosition=FormStartPosition.CenterScreen;
f、 Show();
}
f、 激活();
}
您可以查看并检查是否有第二个表单的打开实例,显示它,或者创建第二个表单的实例并显示它:

private void button1_Click(object sender, EventArgs e)
{
    var f = Application.OpenForms.OfType<Form2>().FirstOrDefault();
    if (f == null)
    {
        f = new Form2();
        f.StartPosition = FormStartPosition.CenterScreen;
        f.Show();
    }
    f.Activate();
}
private void按钮1\u单击(对象发送者,事件参数e)
{
var f=Application.OpenForms.OfType().FirstOrDefault();
如果(f==null)
{
f=新的形式2();
f、 StartPosition=FormStartPosition.CenterScreen;
f、 Show();
}
f、 激活();
}

先生,我无法调用CenterToScreenfunction@officepuppy更正,谢谢。这是一种受保护的方法,您不能将其用于其他表单,对于您当前的表单,您也不应该像文档中提到的那样使用它。我还编辑了您的问题以删除其中的答案。这会让未来的读者对这个问题感到困惑。你不需要新发布的问题,这篇文章似乎回答了你的问题。你还有其他问题吗?这篇文章回答了你当前的问题。我读了你的新问题。它是关于在面板中显示表单的。我会在那里回答你的新问题。现在你可以接受并投票支持这个答案了。先生,我不能打电话给中央屏幕function@officepuppy更正,谢谢。这是一种受保护的方法,您不能将其用于其他表单,对于您当前的表单,您也不应该像文档中提到的那样使用它。我还编辑了您的问题以删除其中的答案。这会让未来的读者对这个问题感到困惑。你不需要新发布的问题,这篇文章似乎回答了你的问题。你还有其他问题吗?这篇文章回答了你当前的问题。我读了你的新问题。它是关于在面板中显示表单的。我会在那里回答你的新问题。现在你可以接受并投票支持这个答案。