程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> ConsoleApplication也精彩:一個控制台進度條的示例

ConsoleApplication也精彩:一個控制台進度條的示例

編輯:關於.NET

這年頭記得習慣用ConsoleApplication的人恐怕也沒有多少了,系統工具無論巨細,一律拖個巨大的form出來..其實控制台,寫得好點也是很有趣的,比如這個效果

下面代碼演示了如何在控制台下展示一個進度條的工作過程。原理很簡單,就把他當成一張紙,不停的寫了擦,擦了寫,當中的技巧全靠想象力,因為這個類實在是太簡單了。

using System;
namespace ConsoleApplication11
...{
  class Program
  ...{
    /**//*
     * ConsoleApplication也精彩。
     * 作者    jinjazz
     * 作者blog  http://blog.csdn.net/jinjazz
     * 演示功能  windows控制台下的進度條
     */
    public static void Main()
    ...{
  
      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);
    }
  }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved