C# 在C中从控制台调用windows窗体#

C# 在C中从控制台调用windows窗体#,c#,C#,我使用的是C#net 4.0 VS 2010 我在Stackoverflow中复制了下面的代码,并确认了引用中的所有代码,这应该是可行的,但是我在调用“Application.Run(new ShoutBox());”时出现语法错误,错误是“找不到类型或命名空间'ShoutBox' 该项目最初构建为一个控制台应用程序。我最近刚刚添加了一个名为ShoutBox的windows窗体,并保存为ShoutBox.cs。我已经将我的代码转移到表单中,这样它就不会在控制台中显示内容,而是显示在我创建的win

我使用的是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
        {
    ....

你错过了一两件事

首先,您需要导入
ShoutBox
所在的名称空间:

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

此外,如果该名称空间位于另一个程序集中(您提到了该程序集),则需要将其添加为对项目的引用

此外,这:

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

这是不正确的。我建议提供一个关于基本类创建的教程。

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
     {
        ....    
     }
}

ShoutBox类可能位于不同的命名空间中


代码
formshoutbox=newform()是无用的,您只需要
应用程序.Run(newshoutbox())

这是一个简单的编译错误。搜索“找不到类型或命名空间”。您可能缺少引用(ShoutBox类是否在其他项目中?)和/或缺少using(ShoutBox类是否在其他命名空间中?)和/或它不存在(ShoutBox类是否在任何位置定义?)-有许多答案涵盖了这一点,而这与形式本身无关。非常简单:所讨论的代码无法解析ShoutBox类型。这就解决了问题。谢谢我会尽快接受的。