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

时间:2016-05-24 17:18:25

标签: c# winforms

所以我有2个表格:

  • Form1中
  • 窗体2

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

按钮从Form2中的按钮单击

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

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

绝对赞赏任何帮助!

4 个答案:

答案 0 :(得分:0)

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

mainFrm.Visible = false;

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您必须定义Form2类以存储对主窗体的引用。

{
   "kind": "youtube#channelListResponse",
   "etag": "fooHash",
   "pageInfo": {
      "totalResults": 1,
      "resultsPerPage": 1
   },
   "items": [{
         "kind": "youtube#channel",
         "etag": "fooHash",
         "id": "fooHash",
         "contentDetails": {
            "relatedPlaylists": {
               "likes": "fooHash",
               "favorites": "fooHash",
               "uploads": "fooHash"
             },
          }
          "googlePlusUserId": "{ID}"
   }]
}

现在,在创建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对象的表单。

答案 3 :(得分: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; }