描述VB ConsoleProgressBar類
VB還是比較常用的,于是我研究了一下VB ConsoleProgressBar類,在這里拿出來和大家分享一下,希望對大家有用。
移動控制臺中的一個區域
MoveBufferArea方法允許我指定控制臺窗口內的一個區域(或緩沖區),然后指定一組坐標來移動它。我想把文件名列表顯示到一個滾動列表中,而同時還能維持頭部信息及控制臺窗口頂部的進度欄。一旦我把一個文件名打印到控制臺中的最后一行,我就停止更新rowIndex變量并開始使用 MoveBufferArea方法。
MoveBufferArea使用了六個參數:
◆第一個參數指定你想選擇區域的左邊緣。
◆第二個參數指定你的緩沖區區域的最上邊一行。
◆第三和第四個參數指定你的緩沖區區域的寬度和高度。
◆最后兩個參數指定你想把你的緩沖區移往的區域的左邊緣和最上邊一行。
- Console.MoveBufferArea(0, _BufferSourceTopLine, _Console.WindowWidth,
_Console.WindowHeight - BufferSourceTopLine, _0, _BufferDestinationTopLine)
這段代碼告訴MoveBufferArea方法從第0列和第BufferSourceTopLine(一個常量,值為8)行開始。然后,它把緩沖區區域寬度設置為等于控制臺窗口的寬度并且把緩沖區區域高度設置為等于控制臺窗口高度和文件名列表的最上面一行(BufferSourceTopLine)之差。最后兩個參數指定我的緩沖區區域的目標位置為第0列和第BufferDestinationTopLine(定義為常數7)行。
用更簡單的描述來說就是,該代碼通過最后一個名字選擇在列表中的第二個文件名并且把該緩沖區往上移動一行,有效地刪除了最上面的文件名并且為底部的下一個文件名留出了空間。
VB ConsoleProgressBar類
我創建了VB ConsoleProgressBar類來處理初始化和更新進度條的細節問題。其構造器使用了一個參數—MaximumValue:
- Public Sub New(ByVal MaximumValue As Long)
- m_length = Console.WindowWidth - 10
- m_left = 7
- m_right = m_left + m_length + 1
- m_progressBarRow = 1
- m_messageBarRow = m_progressBarRow + 1
- m_percentPosition = 4
- m_maximumValue = MaximumValue
- m_currentValue = 0
- Initialize()
- End Sub
我硬編碼了一些值,并且基于這些硬編碼值計算其它值。在本文中,我構造的這個類很小,但是你可以擴展這個構造器以便再加入其它參數—使得進度條更具配置性。
在初始化所有的成員變量以后,我調用Initialize方法,它又調用InitializePercentComplete, InitializeProgressBar和InitializeMessageBar方法。這些方法的任務并不多;它們僅打印一個百分號,一組表示進度條結束的方括號,以及該進度條的最大值和最小值。
【編輯推薦】