在写入后更改控制台文本C#中的颜色

时间:2016-10-05 21:41:41

标签: c# console

我在C#控制台(很多)中打印了一些文字,我想知道在不清除控制台并以新颜色重新打印的情况下,一次更改文本颜色的最简单方法是什么与C ++中的System(color ##)命令效果相同...提前感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Console.BackgroundColorConsole.ForegroundColor属性更改控制台输出颜色。在用新颜色书写完成后,使用Console.ResetColor()返回默认值。

事后更改颜色是一个问题,因为C#没有直接的方法来读取给定位置的文本。但是,如果你知道究竟是什么,可以用不同的颜色重写它(首先跳到使用Console.SetCursorPosition方法定位,然后在原始文本上书写。)

如果你想要尽可能高效,你需要更高水准的P / Invoke wizadry。在this similar question的公认答案中对此进行了详细描述。那里的解决方案利用了一次写入整个Console缓冲区的速度,这非常快。