Приложение зависло при загрузке большого количества данных в сетку - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть вид сетки в форме окна.Когда много данных загружается из базы данных в gridview, мое приложение зависает, пока все данные не загружены в gridview.Есть ли способ решить эту проблему?Я также хочу отобразить изображение gif [loading.gif] или индикатор выполнения, когда данные загружаются в сетку, чтобы показать пользователю, что данные загружаются в сетку.Но изображение и индикатор выполнения также зависают.

У меня также есть одна подсказка, я хочу, чтобы эта подсказка отображалась в центре экрана.Мой код следующий, но подсказка не располагается в центре.

    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 ]

2 голосов
/ 04 ноября 2011

Для первой части вашего вопроса: создайте поток BackgroundWorker , чтобы загрузить данные из базы данных и заполнить эти данные в виде сетки в главном потоке, не замораживая свой интерфейс.

0 голосов
/ 04 ноября 2011

Вы загружаете данные в потоке пользовательского интерфейса - поэтому он замораживает ваш пользовательский интерфейс до тех пор, пока это не будет сделано.

Посмотрите на асинхронную привязку данных.

Вот несколько ссылок:

Асинхронная загрузка данных и привязка данных с помощью Windows Forms

StackOverflow - асинхронное заполнение сетки данных в приложении Windows Forms

...