c#显示Windows窗体

Ski*_*les 3 .net c# winforms

所以,我在这里苦苦挣扎.我正在用C#编写一个Windows控制台应用程序,并且刚刚为应用程序创建了一个名为frmLogin的登录表单.我尝试使用MS记录的方法;

Form f = new Form();
f.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

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

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

frmLogin.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

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

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

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

Dav*_*vid 9

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

Form f = new Form();
Run Code Online (Sandbox Code Playgroud)

当然,这是一个空白表格.看起来你的类型被调用了frmLogin.通常这听起来像一个变量名而不是类名,但是你在这里得到的错误告诉我它是一个类:

frmLogin.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

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

frmLogin login = new frmLogin();
login.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

但是,为了与命名标准和约定保持一致(以帮助防止将来出现混淆和问题),我强烈建议将表单本身重命名为:

LoginForm
Run Code Online (Sandbox Code Playgroud)

然后你可以使用像frmLogin变量名这样的东西,这是一种更常见的方法:

LoginForm frmLogin = new LoginForm();
frmLogin.ShowDialog();
Run Code Online (Sandbox Code Playgroud)