由于这一行代码,控制台中的颜色混乱了
Posted
技术标签:
【中文标题】由于这一行代码,控制台中的颜色混乱了【英文标题】:Colors are messed up in the console because of this one line of code 【发布时间】:2021-07-05 23:32:22 【问题描述】:所以最近我一直在制作控制台 MIDI 播放器,但遇到了一个大问题。仅仅因为这一行代码,颜色将无法正常工作:
Console.SetCursorPosition(0,0);
每当我删除这行代码时,颜色似乎都能正常工作。这是我的意思的一个例子:
With "Console.SetCursorPosition(0,0)"
Without "Console.SetCursorPosition(0,0)"
哦,是的,顺便说一句,这是处理所有打印和颜色编码的代码:
var noteDisplay = new Thread(() =>
Console.Clear();
while (!midiEnded)
Console.MoveBufferArea(0, 0, keyboardWidth, Console.WindowHeight - 1, 0, 1);
Console.WriteLine(string.Join("", notes.ToArray()));
Thread.Sleep((int)(4*(1/playbackSpeed)));
Console.SetCursorPosition(0,0);
);
//...
public static string EncodeToRGB(List<int> rgbList)
int res1 = 0;
for (int i = 0; i < rgbList.Count; i++) res1 = (res1 << 8) | rgbList[i];
return res1.ToString("X");
我发现的最奇怪的事情是: Weird console behaviour
说真的,我不知道为什么会这样。有没有人知道为什么会发生这种情况?
【问题讨论】:
你试过了吗 Console.SetCursorPosition(1,1); ? 如果您自己移动光标,您可能想要.Write()
而不是.WriteLine()
。
【参考方案1】:
我的建议是简单地使用Colorful Console。我已经非常广泛地使用它,它给了我零问题。
【讨论】:
另一个大问题,“找不到命名空间'Formatter'的类型。”Formatter
不是命名空间,而是一个类(假设您指的是Colorful.Formatter
)。以上是关于由于这一行代码,控制台中的颜色混乱了的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将控制台中的文本颜色和背景颜色更改为不同的颜色,同时仍然在同一行上? C++
android如何实现代码控制RadioGroup中某一个按钮选中