ConsoleApplication也精彩,一个控制台进度条的示例。
这年头记得习惯用ConsoleApplication的人恐怕也没有多少了,系统工具无论巨细,一律拖个巨大的form出来..其实控制台,写得好点也是很有趣的,比如这个效果
下面代码演示了如何在控制台下展示一个进度条的工作过程。原理很简单,就把他当成一张纸,不停的写了擦,擦了写,当中的技巧全靠想象力,因为这个类实在是太简单了。
 using
 System;
using
 System; namespace
 ConsoleApplication11
namespace
 ConsoleApplication11 {
{ class
 Program
    
class
 Program {
    
{ /*
        
/*
 *  ConsoleApplication也精彩。
         *  ConsoleApplication也精彩。 *  作者        jinjazz
         *  作者        jinjazz *  作者blog    
http://blog.csdn.net/jinjazz
         *  作者blog    
http://blog.csdn.net/jinjazz
 *  演示功能    windows控制台下的进度条
         *  演示功能    windows控制台下的进度条 */
         
*/
 public
 
static
 
void
 Main()
        
public
 
static
 
void
 Main() {
        
{ 
 bool
 isBreak 
=
 
false
;
            
bool
 isBreak 
=
 
false
; ConsoleColor colorBack 
=
 Console.BackgroundColor;
            ConsoleColor colorBack 
=
 Console.BackgroundColor; ConsoleColor colorFore 
=
 Console.ForegroundColor;
            ConsoleColor colorFore 
=
 Console.ForegroundColor; 
 //
第一行信息
            
//
第一行信息
 Console.WriteLine(
"
*********** jinjazz now working...******
"
);
            Console.WriteLine(
"
*********** jinjazz now working...******
"
); 
 //
第二行绘制进度条背景
            
//
第二行绘制进度条背景
 Console.BackgroundColor 
=
 ConsoleColor.DarkCyan;
            Console.BackgroundColor 
=
 ConsoleColor.DarkCyan; for
 (
int
 i 
=
 
0
; 
++
i 
<=
 
25
; )
            
for
 (
int
 i 
=
 
0
; 
++
i 
<=
 
25
; ) {
            
{ Console.Write(
"
 
"
);
                Console.Write(
"
 
"
); }
            }
 Console.WriteLine(
"
 
"
);
            Console.WriteLine(
"
 
"
); Console.BackgroundColor 
=
 colorBack;
            Console.BackgroundColor 
=
 colorBack; 
 //
第三行输出进度
            
//
第三行输出进度
 Console.WriteLine(
"
0%
"
);
            Console.WriteLine(
"
0%
"
); //
第四行输出提示,按下回车可以取消当前进度
            
//
第四行输出提示,按下回车可以取消当前进度
 Console.WriteLine(
"
<Press Enter To Break.>
"
);
            Console.WriteLine(
"
<Press Enter To Break.>
"
); 
 //
-----------------------上面绘制了一个完整的工作区域,下面开始工作
            
//
-----------------------上面绘制了一个完整的工作区域,下面开始工作 
 //
开始控制进度条和进度变化
            
//
开始控制进度条和进度变化
 for
 (
int
 i 
=
 
0
; 
++
i 
<=
 
100
; )
            
for
 (
int
 i 
=
 
0
; 
++
i 
<=
 
100
; ) {
            
{ //
先检查是否有按键请求,如果有,判断是否为回车键,如果是则退出循环
                
//
先检查是否有按键请求,如果有,判断是否为回车键,如果是则退出循环
 if
 (Console.KeyAvailable 
&&
 System.Console.ReadKey(
true
).Key
==
 ConsoleKey.Enter)
                
if
 (Console.KeyAvailable 
&&
 System.Console.ReadKey(
true
).Key
==
 ConsoleKey.Enter) {
                
{ isBreak 
=
 
true
;
                    isBreak 
=
 
true
; break
;
                    
break
; }
                }
 //
绘制进度条进度
                
//
绘制进度条进度
 Console.BackgroundColor 
=
 ConsoleColor.Yellow;
//
设置进度条颜色
                Console.BackgroundColor 
=
 ConsoleColor.Yellow;
//
设置进度条颜色
 Console.SetCursorPosition(i
/
4
, 
1
);
//
设置光标位置,参数为第几列和第几行
                Console.SetCursorPosition(i
/
4
, 
1
);
//
设置光标位置,参数为第几列和第几行
 Console.Write(
"
 
"
);
//
移动进度条
                Console.Write(
"
 
"
);
//
移动进度条
 Console.BackgroundColor 
=
 colorBack;
//
恢复输出颜色
                Console.BackgroundColor 
=
 colorBack;
//
恢复输出颜色 //
更新进度百分比,原理同上.
                
//
更新进度百分比,原理同上.
 Console.ForegroundColor 
=
 ConsoleColor.Green;
                Console.ForegroundColor 
=
 ConsoleColor.Green; Console.SetCursorPosition(
0
, 
2
);
                Console.SetCursorPosition(
0
, 
2
); Console.Write(
"
{0}%
"
, i);
                Console.Write(
"
{0}%
"
, i); Console.ForegroundColor 
=
 colorFore;
                Console.ForegroundColor 
=
 colorFore; //
模拟实际工作中的延迟,否则进度太快
                
//
模拟实际工作中的延迟,否则进度太快
 System.Threading.Thread.Sleep(
100
);
                System.Threading.Thread.Sleep(
100
); }
            }
 //
工作完成,根据实际情况输出信息,而且清楚提示退出的信息
            
//
工作完成,根据实际情况输出信息,而且清楚提示退出的信息
 Console.SetCursorPosition(
0
, 
3
);
            Console.SetCursorPosition(
0
, 
3
); Console.Write(isBreak 
?
 
"
break!!!
"
 : 
"
finished.
"
);
            Console.Write(isBreak 
?
 
"
break!!!
"
 : 
"
finished.
"
); Console.WriteLine(
"
                      
"
);
            Console.WriteLine(
"
                      
"
); //
等待退出
            
//
等待退出
 Console.ReadKey(
true
);
            Console.ReadKey(
true
); }
        }
 }
    }
 }
}
 
 
                     
                    
                 
                    
                 
 
     
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号