@Batiskaf_stv
Программист, ИТ-энтузиаст

Как правильно вывести на форму несколько таблиц?

Необходимо вывести на форме несколько таблиц для просмотра.
Мне показалось, что наиболее подходящим для этого является DataGridView. Также мне кажется, что руками добавлять / обновлять в нем строки - не есть правильно, я решил использовать для хранения данных DataTable. Проблема в том, что при программном изменении данных в DataTable (ячейки) эти изменения не отображаются в DataGridView. Новая строка отображается, а изменения в существующей строке - нет. Перерыв кучу интернетов, попробовал использовать промежуточное звено BindingSource, а также методы Update() и Refresh() DataGridView. Ничего не помогает.
Неужели необходимо каждый раз при изменении данных перепривязывать источник к DataGridView, чтобы он отобразил изменения? У меня данные могут обновляться до нескольких раз в секунду. И таблиц несколько.
Прошу помочь.
  • Вопрос задан
  • 301 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Batiskaf_stv Автор вопроса
Программист, ИТ-энтузиаст
Всё работает, сам виноват.
При создании DataTable у всех колонок выставил ReadOnly = true, в таком режиме даже программно нельзя изменять данные. Выяснил путём добавления на форму тестовой кнопки, которая добавляла строку и меняла данные - возникла ошибка.
До этого все действия с DataTable делались в подписке на событие - там ошибки не выводились. Кстати почему?
Может ещё кто-то сталкивался: при интенсивном добавлении строк DataGridView начинает глючить: пропадают кнопки вверх/вниз у скролла, задваивается на доли секунды последняя строка (у меня сделано, чтобы таблица автопрокручивалась вниз dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[0];).
Как это лечить?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы