[英]C#.NET 4: How to open a form from inside a class file?
注意:我搜索并搜索了此内容,但找不到确切的东西...
因此,我正在制作一款类似于《辐射》(Fallout)但使用表单GUI而不是实际的第一人称游戏环境的游戏。 我需要该程序先加载一个类文件,并且希望该类文件打开主菜单。 如何获取Main.cs
(要首先加载的类文件)来打开MainMenu.cs
(要打开的表单)?
这是我最后尝试做的:
Form MainMenu = new MainMenu();
MainMenu.Show();
这样做会带来以下错误:
找不到类型或名称空间名称“ Form”(是否缺少using指令或程序集引用?)“ System.Windows.Forms.Form.Show(System.Windows.Forms.IWin32Window)”是一种“方法”但用作“类型”
第一个错误涉及以下行:
Form MainMenu = new MainMenu();
该代码不知道什么是Form
。 除非它在同一个命名空间中(在这种情况下实际上不应该这样),否则您需要完全限定它:
System.Windows.Forms.Form mainMenu = new MainMenu();
或在文件中添加using
指令:
using System.Windows.Forms;
另外,如果还没有这样做,则您的类库将需要对System.Windows.Forms
程序集的程序集引用。 (请注意,这作为一种技术将类库与Windows Forms紧密耦合。因此,如果不携带Windows Forms的引用,您将无法重用代码。)
如果项目本身完全了解类型,而您只是缺少using
指令,则您可能更简单地使用特定类型,甚至隐式地使用:
var mainMenu = new MainMenu();
(另请注意,在某些代码中如何稍微更改了变量名,这导致我...)
第二个错误涉及此行:
MainMenu.Show();
MainMenu
是一种类型 。 Show
是上述类型对象的实例方法 。 该行使您看起来像是将其作为静态方法调用,还是试图将Show
用作类型本身。 这使编译器感到困惑。
简而言之,不要为变量提供与类型相同的名称。 代替:
Form mainMenu = new MainMenu();
mainMenu.Show();
您的代码有一些问题,但是中断程序正在将对象命名为其类(MainMenu = new MainMenu())。 这会混淆编译器并导致其他错误。 该代码应阅读
MainMenu myMainMenu = new MainMenu();
myMainMenu.Show();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.