C#實現控制檯顯示動態進度條百分比
阿新 • • 發佈:2021-11-08
C#實現控制檯顯示動態進度條
前言
private static void Main(string[] args) { bool isBreak = false; ConsoleColor colorBack = Console.BackgroundColor; ConsoleColor colorFore = Console.ForegroundColor; //第一行資訊 Console.WriteLine("****** now working...******"); //第二行繪製進度條背景 Console.BackgroundColor = ConsoleColor.DarkCyan; for (int i = 0; ++i <= 25;) { Console.Write(" "); } Console.WriteLine(" "); Console.BackgroundColor = colorBack; //第三行輸出進度 Console.WriteLine("0%"); //第四行輸出提示,按下回車可以取消當前進度 Console.WriteLine("Press Enter To Break."); //-----------------------上面繪製了一個完整的工作區域,下面開始工作 //開始控制進度條和進度變化 for (int i = 0; ++i <= 100;) { //先檢查是否有按鍵請求,如果有,判斷是否為回車鍵,如果是則退出迴圈 if (Console.KeyAvailable && System.Console.ReadKey(true).Key == ConsoleKey.Enter) { isBreak = true; break; } //繪製進度條進度 Console.BackgroundColor = ConsoleColor.Yellow;//設定進度條顏色 Console.SetCursorPosition(i / 4, 1);//設定游標位置,引數為第幾列和第幾行 Console.Write(" ");//移動進度條 Console.BackgroundColor = colorBack;//恢復輸出顏色 //更新進度百分比,原理同上. Console.ForegroundColor = ConsoleColor.Green; Console.SetCursorPosition(0, 2); Console.Write("{0}%", i); Console.ForegroundColor = colorFore; //模擬實際工作中的延遲,否則進度太快 System.Threading.Thread.Sleep(100); } //工作完成,根據實際情況輸出資訊,而且清楚提示退出的資訊 Console.SetCursorPosition(0, 3); Console.Write(isBreak ? "break!!!" : "finished."); Console.WriteLine(" "); //等待退出 Console.ReadKey(true); }