我正在使用 C# .net 4.0 VS 2010。
我在 Stackoverflow 中复制了以下代码,并从引用中确认了所有这些代码都可以正常工作,但是我在调用“Application.Run(new ShoutBox());”时遇到了语法错误错误是“找不到类型或命名空间‘ShoutBox’。”
该项目最初是作为控制台应用程序构建的。我最近添加了一个名为 ShoutBox 的窗体,并保存为 ShoutBox.cs。我已将代码传输到表单,因此它不会在控制台中显示内容,而是在我创建的 Windows 表单的文本框中显示。
我错过了什么?我怎样才能让它工作?
using System;
using System.Windows.Forms;
namespace ChatApp
{
class ConsoleApplication1
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
//this one works
Application.Run(new Form()); // or whatever
//this one does not work, error on second ShoutBox
Form ShoutBox = new Form();
Application.Run(new ShoutBox());
}
}
}
仅供引用,这是我的最终工作代码:
此代码创建一个新的 Shoutbox 表单而不是空白表单。
using System;
using System.Windows.Forms;
using ShoutBox; // Adding this
namespace ChatApp
{
class ConsoleApplication1
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Form ShoutBox1 = new ShoutBox.ShoutBox(); //Changing this
Application.Run(ShoutBox1); //Changing this
}
}
}
我的Shoutbox表单如下:
using System
using System.Windows.Forms;
namespace ShoutBox
{
public partial class ShoutBox : Form
{
....
最佳答案
ShoutBox
是引用表单的变量的名称,您不能调用 new ShoutBox()。
您已经在上一行中实例化了表单,现在您只需调用
Application.Run(ShoutBox);
但是,如果您有一个以这种方式定义的名为 ShoutBox 的表单
namespace ShoutBox
{
public partial class ShoutBox: Form
{
.....
}
}
那么您需要在文件的开头添加 using 声明
using ShoutBox;
或者您可以简单地将
ShoutBox.cs
文件中使用的命名空间更改为程序 Main 文件中使用的相同命名空间namespace ChatApp
{
public partial class ShoutBox: Form
{
....
}
}
关于c# - 在 C# 中从控制台调用 Windows 窗体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17644423/