2011-11-04 59 views
0

我有一個windows窗體中的gridview。當大量數據從數據庫加載到gridview時,我的應用程序會掛起,直到所有數據都加載到gridview。有什麼辦法可以解決這個問題嗎?當數據加載到gridview時,我也想顯示一個gif圖像[loading.gif]或進度條,以顯示用戶數據正在加載到gridview。但圖像和進度條也掛起。當大量的數據加載到gridview時,應用程序被吊死

我也有一個工具提示,我想在屏幕中心顯示該工具提示。我的代碼如下,但它沒有將該工具提示放置在中心。

Dim x As Integer = TryCastInteger(Screen.PrimaryScreen.WorkingArea.Width/2) 
    Dim y As Integer = TryCastInteger(Screen.PrimaryScreen.WorkingArea.Height /2) 
    ToolTip1.Show("It will take few seconds to display the data.", KryptonPanel1, x, y) 

回答

2

對於你的問題的第一部分:創建一個線程BackgroundWorker加載從數據庫中的數據並填充上主線程gridview的這些數據,而無需凍結您的UI。

+1

並使用ProgressChanged上BackgroundWorker的更新映像和進度。 –

+0

@CodeBuzz:檢查我編輯的問題。 – nightfire001

+0

@Miika L.:檢查我編輯的問題。 – nightfire001

0

你正在UI線程中加載數據 - 這就是爲什麼它凍結你的用戶界面,直到它完成。

看看異步數據綁定。

下面是一些鏈接:

Asynchronous data loading and data binding with Windows Forms

StackOverflow - Asynchronously populate datagridview in Windows Forms application

+0

檢查我編輯的問題。 – nightfire001

+0

在我看來,你並沒有以正確的方式使用後臺工作。您應該在DoWork方法中獲取數據(不更新UI),然後將結果傳遞給WorkCompleted方法,並在那裏更新UI – Slav

相關問題