c#显示Windows窗体

所以,我在这里挣扎一点。 我正在用C#编写一个Windows控制台应用程序,并刚刚为名为frmLogin的应用程序创build了一个login表单。 我试过使用MSlogging的方法;

Form f = new Form(); f.ShowDialog(); 

但是这显然加载/显示一个空白表单,而不是我在表单devise器中定义的表单。

在我的主要应用程序中,我希望能够以编程方式显示login表单,但是当我尝试使用时;

 frmLogin.ShowDialog(); 

它告诉我“一个对象引用是非静态的字段,方法或属性'System.Windows.Forms.Form.ShowDialog()'需要

在过去,我可以简单地使用上面的代码片段来显示表单。 所以,自从我上一次编写Windows控制台应用程序以来,显然有些变化。

有人能告诉我我的方式错误吗?

这将创建一个新的Form类型的实例:

 Form f = new Form(); 

当然,这是一个空白的形式。 这似乎是你的类型被称为frmLogin 。 通常这听起来像一个变量名称,而不是一个类名,但是你得到的错误告诉我这是一个类:

 frmLogin.ShowDialog(); 

鉴于此,那么解决您的问题最快捷的方法就是创建您的表单的实例并显示它:

 frmLogin login = new frmLogin(); login.ShowDialog(); 

但是 ,按照命名标准和惯例(为了防止未来的混淆和问题),我强烈建议将表单本身重命名为:

 LoginForm 

那么你可以使用frmLogin这样的变量名称,这是一个更常见的方法:

 LoginForm frmLogin = new LoginForm(); frmLogin.ShowDialog(); 

问题是,从微软的代码片段,你只是建立基地类型。 你需要建立你的表格。 所以,而不是new Form ,你建立一个new frmLogin

 var f = new frmLogin(); f.ShowDialog(); 

如果这不能解决你的问题,我会删除我的答案,但是,我假设你没有实例化你的表单:

 Form2 frmLogin = new Form2(); frmLogin.ShowDialog(); 

这对我来说工作得很好。 虽然个人,我会简单地使用.Show()方法:

 Form2 frmLogin = new Form2(); frmLogin.Show(); 

创建您试图打开的FORM的对象,例如“frmStudent”

方法1:

 frmStudent obj = new frmStudent(); obj.Show(); 

方法2:

它会打开表单,但是直到关闭它才能移动到另一个表单。

 frmStudent obj = new frmStudent(); obj.ShowDialog();