2013-07-14 3 views
3

Я использую C# .NET 4.0 VS 2010.звонок окна формируют из консоли в C#

Я скопировал следующий код здесь в Stackoverflow и подтвердил все из ссылки, что это, предполагают, чтобы работать, но я имею синтаксическая ошибка при моем вызове на «Application.Run (новый ShoutBox()); ошибка: «Тип или пространство имен« ShoutBox »не найдено.»

Проект был первоначально создан как консольное приложение. Недавно я добавил форму Windows ShoutBox и сохранил ее как ShoutBox.cs. Я передаю свой код в форму, чтобы он не отображал информацию в консоли, а не в текстовом поле формы, которую я создал.

Что я пропустил? И как я могу заставить его работать?

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()); 
      } 


     } 
    } 

Просто для справки, вот мой последний рабочий код: Этот код создает новую форму курилке вместо того, гасятся форму.

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 
     { 
    .... 
+0

Это простая ошибка компиляции. Поиск «Тип или пространство имен не найдено». У вас либо отсутствует ссылка (это класс ShoutBox в другом проекте?), Но и/или отсутствует использование (это класс ShoutBox в другом пространстве имен?) И/или его не существует (является ли класс ShoutBox определенным в любом месте?) - есть много ответов, которые охватывают это, и он имеет * ничего * неотъемлемо, чтобы делать с Формами. Достаточно просто: данный код * не может разрешить тип ShoutBox *. – user2246674

ответ

5

ShoutBox - это имя переменной, ссылающейся на форму, вы не можете вызвать новый ShoutBox().

Вы уже инстанцирован форму в предыдущей строке, теперь вы называете просто

Application.Run(ShoutBox); 

Но, если у вас есть форма называется ShoutBox Определенная таким образом

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

, то вам нужно добавить декларацию использования в начале вашего файла

using ShoutBox; 

или вы можете просто ch Анж пространство имен используется в файле ShoutBox.cs в том же пространстве имен, используемых в программе Основной файл

namespace ChatApp 
{ 
    public partial class ShoutBox: Form 
    { 
     ....  
    } 
} 
+0

Это решает проблему. Благодарю. Я приму это, как только смогу. –

0

Вы пропускаете ни одну или две вещи.

Во-первых, вам нужно импортировать пространство имен, что ShoutBox находится в:

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

Самый простой способ сделать это в Visual Studio, чтобы поместить курсор где-то на слово ShoutBox и нажать либо Alt + Shift + F10 или .. как некоторые люди, которые намного более продуктивны, чем я, нажмите Ctrl + .. Это вызовет меню, в котором будет показано пространство имен, которое должно быть включено.

Кроме того, если это пространство имен находится в другой сборке (вы ссылались на это), то вам нужно добавить его в качестве ссылки на проект.

Кроме того, это:

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

..is некорректным. Я бы предложил учебник по созданию базового класса.

0

Класс ShoutBox является Propably в другом пространстве имен.

И код Form ShoutBox = new Form(); бесполезен, вам нужно только Application.Run(new ShoutBox());.

Смежные вопросы