C#控制檯顯示進度條
class Program { static void Main(string[] args) { bool isBreak = false; ConsoleColor colorBack = Console.BackgroundColor; ConsoleColor colorFore = Console.ForegroundColor;
//第一行資訊 Console.WriteLine("*********** jinjazz 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); } }