描述VB ConsoleProgressBar类

开发 后端
这里介绍VB ConsoleProgressBar类,包括介绍MoveBufferArea方法允许我指定控制台窗口内的一个区域(或缓冲区),然后指定一组坐标来移动它。

VB还是比较常用的,于是我研究了一下VB ConsoleProgressBar类,在这里拿出来和大家分享一下,希望对大家有用。

移动控制台中的一个区域

MoveBufferArea方法允许我指定控制台窗口内的一个区域(或缓冲区),然后指定一组坐标来移动它。我想把文件名列表显示到一个滚动列表中,而同时还能维持头部信息及控制台窗口顶部的进度栏。一旦我把一个文件名打印到控制台中的最后一行,我就停止更新rowIndex变量并开始使用 MoveBufferArea方法。
MoveBufferArea使用了六个参数:
◆第一个参数指定你想选择区域的左边缘。
◆第二个参数指定你的缓冲区区域的最上边一行。
◆第三和第四个参数指定你的缓冲区区域的宽度和高度。
◆最后两个参数指定你想把你的缓冲区移往的区域的左边缘和最上边一行。

 

  1. Console.MoveBufferArea(0, _BufferSourceTopLine, _Console.WindowWidth, 
    _Console.WindowHeight - BufferSourceTopLine, _0, _BufferDestinationTopLine)  


这段代码告诉MoveBufferArea方法从第0列和第BufferSourceTopLine(一个常量,值为8)行开始。然后,它把缓冲区区域宽度设置为等于控制台窗口的宽度并且把缓冲区区域高度设置为等于控制台窗口高度和文件名列表的最上面一行(BufferSourceTopLine)之差。最后两个参数指定我的缓冲区区域的目标位置为第0列和第BufferDestinationTopLine(定义为常数7)行。

用更简单的描述来说就是,该代码通过最后一个名字选择在列表中的第二个文件名并且把该缓冲区往上移动一行,有效地删除了最上面的文件名并且为底部的下一个文件名留出了空间。

VB ConsoleProgressBar类

我创建了VB ConsoleProgressBar类来处理初始化和更新进度条的细节问题。其构造器使用了一个参数—MaximumValue:

  1. Public Sub New(ByVal MaximumValue As Long)  
  2. m_length = Console.WindowWidth - 10  
  3. m_left = 7 
  4. m_right = m_left + m_length + 1  
  5. m_progressBarRow = 1 
  6. m_messageBarRow = m_progressBarRow + 1  
  7. m_percentPosition = 4 
  8. m_maximumValue = MaximumValue 
  9. m_currentValue = 0 
  10. Initialize()  
  11. End Sub  

我硬编码了一些值,并且基于这些硬编码值计算其它值。在本文中,我构造的这个类很小,但是你可以扩展这个构造器以便再加入其它参数—使得进度条更具配置性。

在初始化所有的成员变量以后,我调用Initialize方法,它又调用InitializePercentComplete, InitializeProgressBar和InitializeMessageBar方法。这些方法的任务并不多;它们仅打印一个百分号,一组表示进度条结束的方括号,以及该进度条的最大值和最小值。

【编辑推荐】

  1. VB 2005中开发新一代控制台应用程序
  2. 简单讲解VB开发分布式
  3. 浅析VB Script开发自动化测试
  4. 浅谈VB开发系统知识
  5. VB.NET应用程序中多线程的应用实例
责任编辑:佚名 来源: CSAI
相关推荐

2009-10-10 11:48:56

VB ConsoleP

2009-10-20 14:21:55

VB.NET fnSi

2009-10-19 14:22:13

VB.NET EIF体

2009-10-27 12:06:01

VB.NET IDis

2009-10-20 14:09:05

VB.NET反射功能

2009-10-14 13:56:05

VB.NET数据窗体

2009-10-15 09:02:19

VB.NET申明数组

2009-10-13 09:33:49

VB.NET Web

2009-10-30 11:20:54

VB.NET Proc

2009-08-20 19:08:49

ADODataRead

2009-10-12 12:54:58

VB.NET声明API

2009-10-13 17:16:40

VB.NET Web服

2009-10-14 09:15:15

2009-10-16 11:02:40

VB调用动态连接库

2009-10-15 15:04:42

VB.NET PadL

2009-10-28 10:09:07

VB.NET Dire

2009-10-14 15:44:04

VB.NET字节数组

2009-10-26 10:08:44

VB.NET工程转换成

2009-10-10 16:15:49

VB.NET开发多线程

2010-01-14 10:52:13

VB.NET水晶报表
点赞
收藏

51CTO技术栈公众号