使用按钮打开现有表单

时间:2016-09-15 11:06:45

标签: c# winforms

我有一个登录表单,当我登录成功时,我想从中打开一个“Home form”,这显然是我自己做的。您可以查看下面应该打开表单的部分。它应该参考现有的表格吗?我尝试了一切,但我无法弄明白。

但是它打开了一个新形式而不是我称之为“HomeFRM”的形式。

我如何打开该表格?

this.Hide();
Form _HomeFRM = new Form();
_HomeFRM.Show();



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DELETE
{
public partial class HomeFRM : Form
{
    public HomeFRM()
    {
        InitializeComponent();
    }
 }
}

2 个答案:

答案 0 :(得分:0)

更改为:

 this.Hide();
 _HomeFRM newForm = new _HomeFRM();
 newForm.Show();

您的自定义表单是一个新类:“_ HomeFRM”

您正在创建一个名为“自定义”的Form类的新实例(默认为空类)。

相反,您需要将表单用作类。

答案 1 :(得分:0)

我认为您的_HomeFrm表单是在包含此内容的文件中定义的(或者像这样)

namespace MyForms
{
     public class HomeFrm : Form
     {
          public HomeFrm()
          {
               InitializeComponent();
               .....
          }
          .... other methods and event handlers for the HomeFrm class
     }
}

现在,如果你想创建这个类的实例并显示它,你的代码应该创建正确的类,而不是基类

// This is required to get access to all classes included
// in the MyForms namespace unless the following code is
// itself inside the same namespace....
using MyForms;   

.....

this.Hide();
HomeFrm myHomeFrm = new HomeFrm();
myHomeFrm.Show();

作为旁注,我建议不要使用“登录”表单启动您的应用程序,并在应用程序的生命周期内保持隐藏状态。 Insted从HomeFrm开始,在构造函数内部启动Login表单,将登录结果保存在全局变量中,并在Form_Load事件处理程序中决定是否要继续或停止应用程序