更改活动表单以显示另一种表单

我有一个Form1和另一个我添加的。 Form1在开始时由program.cs运行。 我需要通过按下按钮隐藏Form1并显示options表单。

  private void submitPassword_Click(object sender, EventArgs e) { options optionForm = new options(); optionForm.Show(); } 

上面的代码在顶部打开选项表单,但我需要它来替换当前表单。 我该怎么做到这一点?

在显示新窗体之前使用this.Close()隐藏当前窗体并确保使用无参数Application.Run因此当您关闭它的主窗体时,程序不会关闭。

您可以使用“隐藏”和“显示”方法:

 private void submitPassword_Click(object sender, EventArgs e) { options optionForm = new options(); this.Hide(); optionForm.Show(); } 
 private void submitPassword_Click(object sender, EventArgs e) { options optionForm = new options(); optionForm.Show(); this.Hide(); } 

类似的解决方案,其中一个表单调用并作用于另一个…就像这一个我回答另一个。 你可以做一个类似的过程…将你的第一个表格传递给第二个…然后显示第二个…然后,你可以隐藏你的第一个表格(通过this.Hide())。 然后,在您的第二个表单中,当您单击任何按钮以选择您的选择,并且需要返回到第一个表单时,您可以使用原始表单的引用传入INTO第二个表单来重新显示它,例如在点击第二张表格……

 this.PreservedForm.Show(); // re-show original form this.Close(); // and CLOSE this second form...