Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WinForms-Form2上的按钮,用于隐藏Form1_C#_Winforms - Fatal编程技术网

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

C#WinForms-Form2上的按钮,用于隐藏Form1,c#,winforms,C#,Winforms,所以我有两种形式: 表格1 表格2 Form2上有一个按钮,我希望在单击时隐藏Form1 从表单2中的按钮单击按钮 var mainFrm = new Form1(); mainFrm.Hide(); 这没用。我显然错过了一些东西,但似乎无法理解 非常感谢您的帮助 如果您的form1已经出现在页面中,那么为什么需要再次初始化它?只需将可见状态设置为false即可将其隐藏 mainFrm.Visible = false; 如果看不到更多的代码,很难回答,但您肯定需要引用旧的表单1,它已经可

所以我有两种形式:

  • 表格1
  • 表格2
Form2上有一个按钮,我希望在单击时隐藏Form1

从表单2中的按钮单击按钮

var mainFrm = new Form1();
mainFrm.Hide();
这没用。我显然错过了一些东西,但似乎无法理解


非常感谢您的帮助

如果您的form1已经出现在页面中,那么为什么需要再次初始化它?只需将可见状态设置为false即可将其隐藏

mainFrm.Visible = false;

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

您必须定义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();

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

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

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