【问题标题】:C# maximize a form from another formC# 从另一个表单最大化一个表单
【发布时间】:2014-08-21 04:59:11
【问题描述】:

我正在尝试为我的应用程序进行语音识别。我有语音识别表格 (Form2) 和我的主要表格 (Form1)。我想找到一种从 Form2 最大化 Form1 的方法。我已经了解了语音识别,我不需要帮助,但是对于这个问题的任何帮助将不胜感激!

//Form1
public void Maximize()
{
this.WindowState = FormWindowState.Maximized;
}


//Form2
private void Maximize_Form1()
{
Form1 form = new Form1();
form.Maximize();
}

我尝试过“显示”方式,但这会产生一个全新的窗口。请帮忙。
谢谢。

【问题讨论】:

    标签: c# forms maximize-window


    【解决方案1】:

    您需要将 现有 Form1 实例引用到您的 Form2 实例,以便它可以在其上执行 WindowState = FormWindowState.Maximized;。例如:

    class Form2 {
    
        private Form1 form1Ref;
    
        public void setForm1(Form1 f) { form1ref = f};
    
    }
    

    Form1 会在 form2 实例上调用 setForm1(this),然后可以使用 form1ref 最大化 form1。

    在您当前的代码中,您正在创建一个 new Form1 实例,它完全独立于之前的实例。

    【讨论】:

    • 谢谢!这是我在这个网站上问的第一个问题,你帮了很多忙!再次感谢。
    【解决方案2】:

    您正在使用 From2 中的 this.WindowState,我建议您将参数传递给 Maximize() 方法。

    当您从 Form2 执行 Maximize() 方法时,它会将 Form2 视为引用。

    要传递 Form1 的引用,您应该将对象发送到 Method 并设置所需的属性。

    //Form1
    public void Maximize(Form frmForm)
    {
    frmForm.WindowState = FormWindowState.Maximized;
    }
    
    
    //Form2
    private void Maximize_Form1()
    {
    Form1 form = new Form1();
    form.Maximize(form);
    }
    

    【讨论】:

    • 不要尝试在Form2 中创建另一个Form1 实例。您必须使用创建的主窗体的相同对象。
    猜你喜欢
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多