我正在使用 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/

10-12 20:59