Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 29.05.2015
Сообщений: 13
1

DataGridView + Scrolling = ошибка

29.08.2015, 17:12. Показов 1593. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Который день не могу победить ошибку. Суть в следующем.
Имеется DataGridView. В него из другого потока периодически добавляются строки. Чтобы были видны новые строки, я делаю DataGridView.Refresh().
Так как строк много (порядка 10000) приходится их иногда скролить вверх-вниз, чтобы посмотреть нужные. Вот в этот момент и вылетает общая ошибка и окно закрывается. Судя по описанию ошибки, происходит конфликт, когда WinForms отрисовывает и обрабатывает скроллинг и в этот момент добавляются новые строчки в DataGridView(он ругается на неизвестные индексы вне диапазона, а когда я смотрел стек методов при обработке исключения, наверху оказывался метод со ScrollBar'ом) . Если таблицу не скролить, то ошибок не возникает, правда и новых строк не видать.
Что тут можно сделать, чтобы работа программы была стабильная?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2015, 17:12
Ответы с готовыми решениями:

Не могу вывести в фрейм (<frame src='search.html' scrolling='auto'> <frame name='main' src='result.html' scrolling='auto'>)
Помогите решить такую проблему. У меня скрипт на JS обращается из одного фрейма (в котором форма...

3D scrolling
Здравствуйте, дорогие форумчане! Облазил пол инета, но так и не сумел найти альтернативную версию...

Scrolling UI Menu
Ребят, а у кого нибудь есть хороший пример как создавать на новом UI меню, которое скролится ? Как...

Lazy infinite scrolling
всем привет! Приложение работает с большим объемом данных, которые нужно отображать в таблице и,...

3
Эксперт .NETАвтор FAQ
10413 / 5143 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
29.08.2015, 19:42 2
Лучший ответ Сообщение было отмечено юный_падаван как решение

Решение

Цитата Сообщение от юный_падаван Посмотреть сообщение
Что тут можно сделать, чтобы работа программы была стабильная?
1) Вы используете Invoke для добавления записей?
2) Используйте виртуальный режим DataGridView.VirtualMode для отображения записей и свойство RowCount для настройки их числа.
0
8941 / 4853 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
29.08.2015, 20:06 3
Как костыль предложу выделять последнюю строку при обновлении:
C#
1
dataGridView1.CurrentCell = dataGridView1[0, dataGridView1.Rows.Count-1];
1
1 / 1 / 1
Регистрация: 29.05.2015
Сообщений: 13
29.08.2015, 20:40  [ТС] 4
Storm23, спасибо огромное! Только прочитав твое сообщение, я понял свою ошибку - надо сделать через Invoke добавление строк, чтобы и DGV и DataTable были в одном потоке.
Заработало, и не глючит!
0
29.08.2015, 20:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2015, 20:40
Помогаю со студенческими работами здесь

Управление Scrolling-ом в MSFlexGrid?
Я написал поиск в MSFlexGrid и незнаю как программно задать scrolling чтобы найденая строка...

Scrolling в многострочном textboxe
Здравствуйте все! Подскажите пожалуйста как справиться со следующей проблемой: Есть...

Изображения в Scrolling Activity
Предполагается активити, на которой по очереди будут идти текст и изображения (изображения с...

Отмена scrolling-a одной страницы
Всем добрый день. Уважаемые форумчание и гуру андроида, помогите разобраться самостоятельно решить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru