【发布时间】:2014-04-28 20:41:11
【问题描述】:
我目前正在使用 C# (.NET 4.5) 来制作控制台应用程序。我遇到的问题是光标在使用 Console.Write(char c) 后总是移动到下一个单元格,所以当它到达一行的最后一个单元格时,它会转到下一行,弄乱了所有的布局。是否可以在不移动光标的情况下将字符输出到控制台(具有背景和前景色)?
我使用的代码如下:
Console.BackgroundColor = bgColor;
Console.ForegroundColor = fgColor;
Console.SetCursorPosition(currX, currY);
Console.Write(c);
假设 currX 和 currY 为整数,bgColor 和 fgColor 为 ConsoleColor,c 为字符。
谢谢。
【问题讨论】:
-
您需要更具体地了解如何使用
SetCursorPosition,因为这显然是这里的问题。您应该能够打印并简单地将光标位置备份 1 个字符并且一切顺利。 -
有点尴尬的是,您可以使用MoveBufferArea 函数“写入”到右下角而无需滚动页面。
-
我使用 SetCursorPosition 写入特定单元格。问题是,如果我写到一行的第 79 位,它会转到下一行。我认为问题在于我应该使用其他不是 Console.Write 的东西,但我不知道是什么。我也检查了 MSDN,没有任何结果。
-
@500-InternalServerError,您是否建议使用 MoveBufferArea 而不是 Write 与一个单元格区域?
-
您可以在执行 Console.Write(c) 后使用 SetCursorPosition 再次重置位置。
标签: c# .net console console-application