在.NET控制台应用程序中,是否可以始终在控制台中显示一行文本?

arc*_*arc 6 c# vb.net console

我正在考虑向控制台应用程序添加一个简单的带宽监视器,我想知道是否可以随时在控制台窗口中保持一行.我可以手动设置一些东西,将新的控制台输出传递给一个方法,该方法可以获取控制台的内容,清除控制台,在第一行添加带宽数据,然后将每行先前信息重写回控制台等.但这似乎是一种真正的hacky方式,并且我将被限制在控制台窗口中一次可见的行数(不滚动).

任何的想法?这有什么内置功能吗?例:

STATS: Downloaded: 2599b, Uploaded: 754b  <- this always stays at the top   
constantly changing text
constantly changing text
constantly changing text
constantly changing text
constantly changing text
constantly changing text
constantly changing text
constantly changing text
constantly changing text
constantly changing text
constantly changing text
constantly changing text
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 11

您可以使用Console类的其他成员,例如CursorTopCursorLeft"移动"光标.如果将光标移动到行的开头,然后使用Console.Write,它将"覆盖"该位置的数据.

这使您可以创建您正在描述的情境(通过移动光标,写入,然后向后移动).

话虽这么说,我通常会建议您在需要以特定方式呈现多个项目时立即使用GUI应用程序.你会有更多的灵活性(而且可能会更简单).

  • 一个建议(来自之前已经完成此操作的人),如果新文本的字符数少于旧文本,则需要制定一些条款以确保旧数据完全清除.如果您发送"Hi There",然后发送"Hello",如果您不小心,最终会收到"Helloere". (2认同)

com*_*cme 6

如果您不打算全屏运行,则可以使用Console.Title.