我有几个问题都与作为控制台应用程序运行的 Windows 应用程序有关。
在我的程序入口点中,我有逻辑来确定是否正在传递命令行参数,如果是,我调用AllocConsole()。这工作得很好,但我很好奇是否可以不弹出一个新的控制台窗口。所以期望用户将从命令窗口调用它,所以我希望应用程序的输出进入用户当前正在工作的窗口,而不是其他屏幕。此外,通过AllocConsole()弹出的控制台窗口不够用户友好。例如,如果用户输入错误的参数,新窗口将打开,通知用户他们的错误,然后用户必须回到原来的窗口来修复错误,然后再次运行命令。基本上我正在寻找更传统的命令行体验。在我的情况下这可能吗?
下一个问题与格式化控制台输出有关。我已经阅读了关于 SO 和 MSDN 的几篇文章,但我似乎找不到一个好的答案。我目前正在做这样的事情:
Console.WriteLine("{0,0}\t\t{1,10}", item.Key, item.Value);
这工作得很好,但 item.Value 中的值完全有可能有几行长,因此包含几行。我正在寻找一种更传统的“表格”布局,其中 item.Value 的文本仍将换行,但仅限于其自己的列,而不是在 item.Key 的值下方换行。这是可能的,如果是的话,最好的方法是什么?
谢谢!