我在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)
答案 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