4

我似乎无法找到的是,是否可以在 C# 控制台应用程序中在现有窗口顶部的某种层中写入文本,并在文本中写入进度条或信息。

我已经看到了执行此操作的 power shell cmdlet,它显示一个进度条,然后当它完成时,进度条消失并且下面的任何内容都是可见的。即使额外的控制台输出导致窗口滚动,我看到的栏也会保持原位。

有人有什么想法吗?

编辑:这是一个使用 Write-Progress 的 powershell 示例

http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-76-18-metablogapi/8726.WES_2D00_1_2D00_29_2D00_11_2D00_2_5F00_2587E97F.jpg

4

1 回答 1

5

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

几年前,我写了一篇关于在 .NET 中使用控制台屏幕缓冲区的文章。查看http://www.devsource.com/article2/0,1895,2011496,00.asp

完整源代码可在http://www.mischel.com/pubs/consoledotnet/consoledotnet.zip获得

于 2013-06-28T18:54:33.797 回答