【问题标题】:C# WinForms - Button on Form2, to hide Form1C# WinForms - Form2 上的按钮,用于隐藏 Form1
【发布时间】:2016-05-24 17:18:24
【问题描述】:

所以我有 2 个表格:

  • Form1
  • Form2

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

从 Form2 中的按钮单击按钮

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

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

非常感谢任何帮助!

【问题讨论】:

  • 为什么要创建 Form1 var mainFrm = new Form1(); 的新实例?如果您的意图是隐藏已显示的 Form1,那么您需要获取该已存在表单的句柄并对其调用 Hide()。

标签: c# winforms


【解决方案1】:

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

mainFrm.Visible = false;

【讨论】:

    【解决方案2】:

    没有看到更多代码很难回答,但您肯定需要引用已经可见的旧Form1 并将其隐藏。您正在创建一个新表单并将其隐藏。

    【讨论】:

      【解决方案3】:

      您必须定义 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 对象的表单。

      【讨论】:

        【解决方案4】:

        您可以在 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; }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-01
          • 1970-01-01
          相关资源
          最近更新 更多