当前位置:主页   - 电脑 - 网站开发 - ASP.Net
ConsoleApplication也精彩-------一个控制台进度条的示例
来源:网络   作者:   更新时间:2012-02-28
收藏此页】    【字号    】    【打印】    【关闭

  这年头记得习惯用ConsoleApplication的人恐怕也没有多少了,系统工具无论巨细,一律拖个巨大的form出来..其实控制台,写得好点也是很有趣的,比如这个效果ConsoleApplication也精彩-------一个控制台进度条的示例

  下面代码演示了如何在控制台下展示一个进度条的工作过程。原理很简单,就把他当成一张纸,不停的写了擦,擦了写,当中的技巧全靠想象力,因为这个类实在是太简单了。

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、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明