C# WinForms - Form2 上的按钮,用于隐藏 Form1

问题描述 投票:0回答:5

所以我有两种表格:

  • 表格1
  • 表格2

Form2 上有一个按钮,我想在单击该按钮时隐藏 Form1。

从 Form2 中的按钮单击按钮

var mainFrm = new Form1();
mainFrm.Hide();

这没有任何作用。我显然错过了一些东西,但似乎无法弄清楚。

任何帮助我们绝对感激!

c# winforms
5个回答
0
投票

如果你的form1已经存在于页面中,那为什么还需要再次初始化它呢?只需将可见状态设置为 false 即可隐藏它。

mainFrm.Visible = false;

0
投票

在没有看到更多代码的情况下很难回答,但您肯定需要引用已经可见的旧

Form1
并将其隐藏。您正在创建一个新表单并将其隐藏。


0
投票

您必须定义 Form2 类来存储对主表单的引用。

public partial class Form2 : Form
{
    /* reference to the main form will be stored here */
    private Form1 _mainForm;

    public Form2(Form1 mainForm)
    {
        InitializeComponent();
        /* Initialize the main form field */
        this._mainForm = mainForm;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        /* Set the main form visibility to false */
        _mainForm.Visible = false;
    } 
}

现在,当您创建 Form2 实例时,只需将主窗体添加到构造函数中即可:

 /* Show the form2 */
 _form2 = new Form2(this);
 _form2.Show();

注意:this将引用创建Form2对象的表单。


0
投票

您可以在 Form1 中创建一个静态表单类型属性,并在 Form1 显示时设置它,然后使用它来隐藏您的表单 这是对我有用的代码。

   private void button1_Click(object sender, EventArgs e)
    {
        var objForm1 = new Form1();
        Form1.Fom1ref = objForm1;
        objForm1.Show();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        Form1.Fom1ref.Hide();

    }

这是应该在 Form1 中设置的属性。

   public static Form Fom1ref { get; set; }

0
投票

我在登录表单中使用这个,当您按下form3上的登录按钮时,form3会隐藏,form1会出现。

  private void button1_Click(object sender, EventArgs e) {  
          Form1 frm = new Form1();
          frm.Show();
         // If you want to Hide Form     
          this.Hide();
             }
© www.soinside.com 2019 - 2024. All rights reserved.