2013-04-18 30 views
1

我已經編寫了一個應用程序,用於掃描網絡,然後用所有信息填充Listbox,發現過程需要一點時間才能按預期完成,因爲我們目前擁有的網絡設備數量;我想展示這樣的進度條,讓用戶知道網絡正在掃描,但我不知道如何做到這一點,你們可以請我指出正確的方向嗎?我正在考慮動態創建一個小表單,然後用進度條填充它,但我現在很迷茫。謝謝。主窗體前的進度條

回答

1

您的問題意味着網絡掃描是在程序啓動時發生的第一件事,而不是用戶單擊表單上的按鈕(如在FormCreate事件中)。如果這是你正在做的事情,你可以考慮把網絡掃描代碼放到一個線程中,並在主窗體啓動時啓動線程。這樣,用戶將實際看到表單,並且可以從線程發送表單ProgressBar或狀態更新。

一個更簡單的方法是將Timer放在窗體上,並在FormCreateFormActivate啓動計時器。計時器的OnTimer事件將開始網絡掃描,並從那裏您可以更新ProgressBar或發送狀態消息到列表框或任何。

1

您可以將進度欄放在與ListBox相同的窗體上。

顯示進度是一種藝術形式。如果您知道要提前掃描多少個網絡設備,請將該號碼設置爲Max。然後,在更新列表框檢查時,如果您位於下一個網絡設備上,您還可以更新進度條的位置

您還可以使用兩個進度條 - 一個用於網絡設備的數量,另一個用於當前網絡設備。您還可以更新Max,因爲您發現要掃描的內容更多。

問題出在您啓動時可能不知道有多少個網絡設備,或者最後一個設備可能需要更長時間才能掃描,然後將所有先前的設備放在一起。在這種情況下,您可以使用閃光進度條,該進度條可以前後反彈。您可以在更新ListBox時進行更新,或在計時器上進行更新。這真的只是讓用戶知道你很忙,並沒有鎖定。

如果您想讓用戶在進行過程中不點擊控件,那麼您可以禁用這些控件。