当大量数据加载到gridview时,应用程序被挂起

时间:2011-11-04 09:14:08

标签: vb.net winforms datagridview tooltip

我在Windows窗体中有一个gridview。当大量数据从数据库加载到gridview时,我的应用程序将挂起,直到所有数据都加载到gridview。有什么方法可以解决这个问题吗?我还想在将数据加载到gridview时显示gif图像[loading.gif]或progressbar,以向用户显示数据正在加载到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 个答案:

答案 0 :(得分:2)

对于问题的第一部分:创建一个BackgroundWorker线程以从数据库加载数据,并在主线程上的gridview上填充这些数据,而不会冻结您的UI。

答案 1 :(得分:0)

您正在UI线程中加载数据 - 这就是为什么它会冻结您的UI直到完成。

查看异步数据绑定。

以下是一些链接:

Asynchronous data loading and data binding with Windows Forms

StackOverflow - Asynchronously populate datagridview in Windows Forms application