C# 类中的Winforms新表单实例不工作

C# 类中的Winforms新表单实例不工作,c#,winforms,C#,Winforms,我试图从类文件中最大化窗体,但当我在类中创建窗体的新实例时,什么也没有发生。我花了很长时间寻找答案,但什么也没找到。这是我在课堂上的代码 public void maxForm() //code from the class { Options options = new Options(); options.WindowState = FormWindowState.Maximized; //not working } 这是我表格中的代码 private void butto

我试图从类文件中最大化窗体,但当我在类中创建窗体的新实例时,什么也没有发生。我花了很长时间寻找答案,但什么也没找到。这是我在课堂上的代码

public void maxForm() //code from the class
{
    Options options = new Options();
    options.WindowState = FormWindowState.Maximized; //not working
}
这是我表格中的代码

private void button1_Click(object sender, EventArgs e) //code from form
{
    Class1 class = new Class1();
    class.maxForm();
}

如果我使用相同的代码,但使用不同的形式,它就会工作。它的行为就像被阻止一样。

您不需要显示表单吗

Options options = new Options();
options.WindowState = FormWindowState.Maximized;
options.Show();
当我创建窗体的新实例时

这就是你的问题所在。您不需要一个新实例,而是需要已经存在的实例

如果您的
按钮1
选项
表单的一部分,则只需执行以下操作:

private void button1_Click(object sender, EventArgs e) //code from form
{
    WindowState = FormWindowState.Maximized;
}
或者,正如您所说,如果您需要从不同的类中最大化它(为什么?),那么您可以这样做:

public void maxForm(Options options) //code from the class
{
    options.WindowState = FormWindowState.Maximized;
}

是的,我知道我可以做到这一点,我特别希望它来自一个不同的类文件。然后你需要传递你打开表单的实例。可能类似于
maxForm(this)
。我用代码更新了我的答案,但听起来确实有些可疑-为什么要创建一个类来最大化表单?您对该类还有其他要求吗?表单是一个类,那么为什么您需要另一个类来对表单执行某些操作呢?根据您对Backs答案的评论,似乎您希望创建某个对象的实例可以更改同一类型的另一个实例
Options
是一种类型,
Options
包含对
Options
实例的引用。想象一下,这是一种汽车:一辆福特野马。现在,您创建了福特野马的两个实例(您从经销商处购买了两个)。你损坏了一辆车,另一辆车是否会改变以反映对第一辆车的损坏?不,因为它们是不同的汽车(实例)。它们的类型相同(福特野马),但实例不同。@Joseph可能已经显示了表单的一个实例,但
Options=new Options()创建一个新实例。事实上,你可以让他们并排看。
private void button1_Click(object sender, EventArgs e) //code from form
{
    Class1 class = new Class1();
    class.maxForm(this);
}