Я создал Приложение Windows Forms VB.NET в Visual Studio 2008. Когда я запускаю свою программу от командной строки, я не получаю вывода (только следующая подсказка).
Что я делаю неправильно?
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Debug.Write("Foo")
Debug.Flush()
Console.WriteLine("foo")
Console.Beep(800, 100) 'confirm this function is called'
Me.Close()
End Sub
Править: Программа может иметь форму и консоль?
EDIT2: работы ответа Ho. Однако вывод появляется на следующем приглашении командной строки. Приложение Winforms может сказать командной строке ожидать, пока это не закончено вместо непосредственного возврата?
Или, если у вас уже есть приложение WinForms, вы можете присоединить к нему консоль с помощью AttachConsole API.
using System.Runtime.InteropServices;
...
[DllImport("kernel32.dll")] static extern bool AttachConsole(int dwProcessId);
private const int ATTACH_PARENT_PROCESS = -1;
...
AttachConsole(ATTACH_PARENT_PROCESS);
(Отформатировано как код)
Тестирование аналогичного кода с помощью приложения Windows Form на C # .NET. Выводит и подает звуковой сигнал в Visual Studio, но подает звуковой сигнал только при запуске из командной строки.
Если я изменю Тип вывода на Консольное приложение на вкладке Приложение в свойствах проекта, я смогу использовать и форму, и консоль :)
Попробуйте создать новый проект, используя шаблон "Консольное приложение".
Остальные правы, когда говорят, что вам нужно запускать свое приложение как консольное. На ваш вопрос о том, можете ли вы иметь и консоль, и графический интерфейс: да. Просто добавьте ссылку на System.Windows.Forms
в свой проект, а для метода Main
приложения включите этот код:
' here instantiate whatever form you want to be your main form '
Dim f As New Form1
' this will start the GUI loop, which will not progress past '
' this point until your form is closed '
System.Windows.Forms.Application.Run(f)
Чтобы использовать консоль, вам нужно создать приложение командной строки / консоли, а не приложение формы Windows.