C# 在控制台窗口覆盖上写入?

C# 在控制台窗口覆盖上写入?,c#,console-application,C#,Console Application,我似乎无法确定的是,在C#console应用程序中,是否可以在现有窗口顶部的某个层中编写文本,并为进度条或信息编写文本 我见过PowerShell cmdlet,它可以显示进度条,当进度条完成后,进度条就会消失,下面的任何内容都是可见的。即使额外的控制台输出导致窗口滚动,我看到的条也会保持在原来的位置 有人有什么想法吗 编辑:下面是powershell使用写入进度进行操作的示例 很可能他们正在使用。也就是说,它们保存当前缓冲区并创建一个新的缓冲区供应用程序使用。应用程序完成后,它会将原始屏幕缓冲

我似乎无法确定的是,在C#console应用程序中,是否可以在现有窗口顶部的某个层中编写文本,并为进度条或信息编写文本

我见过PowerShell cmdlet,它可以显示进度条,当进度条完成后,进度条就会消失,下面的任何内容都是可见的。即使额外的控制台输出导致窗口滚动,我看到的条也会保持在原来的位置

有人有什么想法吗

编辑:下面是powershell使用写入进度进行操作的示例


很可能他们正在使用。也就是说,它们保存当前缓冲区并创建一个新的缓冲区供应用程序使用。应用程序完成后,它会将原始屏幕缓冲区放回原处

几年前,我写了一篇关于在.NET中使用控制台屏幕缓冲区的文章。退房


完整的源代码可以在

上找到,我想这是通过在每次进度条更新和重新显示时清除屏幕来实现的,但可能还有另一种方法。你可以通过
控制台.SetCursorPosition
做任何你想做的事情。通常情况下,当某些内容看起来“在”其他内容之上时,这只是意味着程序正在内存中存储重新创建以前覆盖的内容所需的信息。非常有趣,谢谢!我会读一读,但看起来它能满足我的要求,谢谢:)不,不。你的devsource链接似乎死了。我在powershell源代码中找到了魔术点: