Console.Write(string)在VS 2017 WinForms项目中不再起作用?

5jvtdoz2  于 2023-03-24  发布在  其他
关注(0)|答案(3)|浏览(167)

有人知道为什么Console.Write(string)不再在Visual Studio 2017 C# Windows窗体应用程序中工作吗?
下面是一些可复制的示例代码:

Console.WriteLine("Results: ");
const int count = 15;
for (int i = 0; i < count; i++)
{
    if (i == (count - 1))
        Console.Write(i);
    else
        Console.Write(i + ", ");
}

我已经向微软的VS团队提交了一个bug,但他们并没有提供什么帮助。他们似乎不理解这个问题,因为某种原因?我不知道如何比这里更清楚。
错误报告:https://developercommunity2.visualstudio.com/t/consolewritestring-does-not-work-anymore/1241476

4nkexdtk

4nkexdtk1#

它不会工作,因为winforms项目不会在这里创建控制台窗口。如果你想看到它的控制台输出,你需要打开Visual Studio的集成输出窗口。

步骤1

单击Visual studio导航菜单中的“查看”。

第二步

然后单击Output,或者您可以使用快捷方式Ctrl+WO为您打开窗口。

步骤3

现在,将所有的Console.WriteLines(...);替换为Debug.WriteLines(...);,这将放置您想要输出的所有行。

pokxtpni

pokxtpni2#

微软已经改变了他们产品的功能,他们这样做甚至没有很多人注意到,因为它是这样一个利基案例场景......正如@Jimi在上面的评论中所说。
你指的是Visual Studio的输出面板,当然是(?)。或者是即时窗口,这取决于你的配置。如果是这样的话,这发生在一段时间前,并持续了一段时间。它已经解决了(或者,更好的是,默认行为已经恢复)在当前版本之前的许多版本。

cetgtptt

cetgtptt3#

我跟随你的Bug Report并复制了你的问题。
根本原因是:您的项目不是控制台应用程序,即控制台应用程序将立即显示Console.Write输出。然而,在WinForms中,Visual Studio读取控制台输出,但不会将其打印到输出窗格,直到向其提供换行符。通常,Windows窗体应用程序不使用Console.Write[Line],因为当您在Visual Studio之外运行时,它不会出现在任何地方。
如果您坚持使用Console.Write,请添加一个换行符,如下所示:x1c 0d1x控制台。写入有输出!
您也可以按照Jamshaid Kamran的建议打开View-Output并将Console更改为Debug,或者有here打开Console窗口的解决方案,但非常不方便。根据我的经验,我更喜欢使用MessageBox.Show(“Results”)来临时查看某些内容。

相关问题