2010-04-21 3 views
0

Предположим, у меня есть код внутри Winform. Я бы также хотел вывести в консоль, как это:Как использовать консоль с приложением Winform?

 Reader = command.ExecuteReader(); 
     while (Reader.Read()) 
     { 
      string thisrow = ""; 
      for (int i = 0; i < Reader.FieldCount; i++) 
       thisrow += Reader.GetValue(i).ToString() + ","; 
      Console.WriteLine(thisrow); 
     } 
     connection.Close(); 

Он не откажет, но я не могу увидеть любую консоль. Зачем ?

ответ

2

Выход на самом деле идет на «консоль» - вы просто не видите консольное окно. То есть если вы попытаетесь прочитать стандартный вывод своей программы из другой программы, вы увидите все данные, которые вы распечатаете на консоли. Если вы действительно хотите увидеть окно консоли, измените приложение на консольное приложение. (Вы все равно можете запускать формы и все так же, как и в приложении Windows.)

+0

OK спасибо попробует. – user310291

1

Почему бы вам просто не вывести его в элемент управления ListBox на другой форме? Результат будет таким же, если не использовать объект консоли.

3

Он переходит в окно вывода при запуске этого кода в Visual Studio. Если вы этого не сделаете, это будет бит-ведро. При изменении типа приложения он переходит в консольное окно. Project + Properties, вкладка Application, Output type = "Console Application". Не совсем полезно.

2

Вы не увидите консоль при создании приложения Windows (WinForm). Обычно рекомендуется создать консольное приложение, а затем создать свои формы, прикрепленные к нему. Проблема в том, что вы должны запускать формы асинхронно, чтобы правильно обновлять свои формы.

Мое предложение было бы создать многострочный текстовый ящик и просто распечатать его. Если вы хотите, чтобы он выглядел как консоль, сделайте черный фон белым текстом, поместите текстовое поле в форму самостоятельно.

+0

Я хочу консоль для каких-то других целей :) – user310291

1

Вы можете использовать класс Trace и задать свой собственный TraceListener в виде окна консоли собственного творения. Там много помощи; просто Google "пользовательский tracelistener". Или вы можете найти существующую халяву, которая делает то, что вы хотите.

+0

кажется завышенным за то, что я хочу сделать, но может быть полезным для какого-то другого контекста. – user310291

0

Если вы хотите увидеть выход на консоль, вы можете настроить для своего проекта как окно консоли, так и видимую форму.

Если вы установите для проекта консольное приложение , появится окно консоли. Тогда в вашем методе Main поставил:

public static void Main() 
{ 
    Application.Run(new MyForm()); 
} 

Это оставит консольное окно открытым, но начать свою форму, так что оба видны одновременно. Затем все, что вы выведете на консоль, появится в окне консоли.