3

我正在使用 C# .net 4.0 VS 2010。

我在 Stackoverflow 中复制了以下代码,并从参考资料中确认了这一切都应该有效,但是我在调​​用“Application.Run(new ShoutBox());”时遇到语法错误 错误是“找不到类型或命名空间‘ShoutBox’。”

该项目最初是作为控制台应用程序构建的。我最近刚刚添加了一个名为 ShoutBox 的 Windows 窗体,并保存为 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
        {
    ....
4

3 回答 3

5

ShoutBox是引用表单的变量名,不能调用new ShoutBox()。

您已经在上一行中实例化了表单,现在您只需调用

 Application.Run(ShoutBox); 

但是,如果您有一个以这种方式定义的名为 ShoutBox 的表单

namespace ShoutBox
{
     public partial class ShoutBox: Form
     {
        .....
     }
}

那么您需要在文件开头添加 using 声明

using ShoutBox;

或者您可以简单地将文件中使用的命名空间更改为ShoutBox.cs程序主文件中使用的相同命名空间

namespace ChatApp
{
     public partial class ShoutBox: Form
     {
        ....    
     }
}
于 2013-07-14T22:30:52.887 回答
0

您缺少一两件事。

首先,您需要导入以下名称空间ShoutBox

using Your.Namespace.Where.ShoutBox.Is.Declared;

在 Visual Studio 中执行此操作的一种简单方法是将光标放在单词上的某个位置,ShoutBox然后按Alt+ Shift+F10或.. 就像一些比我更有效率的人一样,按Ctrl+ .。这将打开一个菜单,显示需要包含的命名空间。

此外,如果该命名空间在另一个程序集中(您提到过),那么您需要将其添加为对项目的引用。

另外,这个:

Form ShoutBox = new Form();
Application.Run(new ShoutBox());

..是不正确的。我会建议一个关于基本类创建的教程。

于 2013-07-14T22:30:51.877 回答
0

ShoutBox 类可能在不同的命名空间中。

而且代码Form ShoutBox = new Form();没用,你只需要Application.Run(new ShoutBox());.

于 2013-07-14T22:31:20.843 回答