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

1 つまたは 2 つのものが不足しています。

まず、次の場所にある名前空間をインポートする必要がありますShoutBox

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

Visual Studio でこれを行う簡単な方法は、単語の上にカーソルを置いて+ +または.. を押すShoutBoxことです。これにより、含める必要がある名前空間を示すメニューが表示されます。AltShiftF10Ctrl.

また、その名前空間が別のアセンブリにある場合 (ほのめかした)、それをプロジェクトへの参照として追加する必要があります。

また、これ:

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 に答える