这年头记得习惯用ConsoleApplication的人恐怕也没有多少了,系统工具无论巨细,一律拖个巨大的form出来..其实控制台,写得好点也是很有趣的,比如这个效果
下面代码演示了如何在控制台下展示一个进度条的工作过程。原理很简单,就把他当成一张纸,不停的写了擦,擦了写,当中的技巧全靠想象力,因为这个类实在是太简单了。
using
System;
namespace
ConsoleApplication11

...
{
class
Program

...
{

/**/
/*
*ConsoleApplication也精彩。
*作者jinjazz
*作者blog
http://blog.youkuaiyun.com/jinjazz
*演示功能windows控制台下的进度条
*/
public
static
void
Main()

...
{

bool
isBreak
=
false
;
ConsoleColorcolorBack
=
Console.BackgroundColor;
ConsoleColorcolorFore
=
Console.ForegroundColor;

//
第一行信息
Console.WriteLine(
"
***********jinjazznowworking...******
"
);

//
第二行绘制进度条背景
Console.BackgroundColor
=
ConsoleColor.DarkCyan;
for
(
int
i
=
0
;
++
i
<=
25
;)

...
{
Console.Write(
"
"
);
}
Console.WriteLine(
"
"
);
Console.BackgroundColor
=
colorBack;

//
第三行输出进度
Console.WriteLine(
"
0%
"
);
//
第四行输出提示,按下回车可以取消当前进度
Console.WriteLine(
"
<PressEnterToBreak.>
"
);

//
-----------------------上面绘制了一个完整的工作区域,下面开始工作

//
开始控制进度条和进度变化
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
);
}
}
}