Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка Windows Forms > Вычисление в dataGridView |
Автор: rocky7 25.9.2015, 10:13 | ||
Программа считывает таблицу из csv файла и отображает её в dataGridView. Мне нужно в восьмом столбце dataGridView отображать разность значений соседних ячеек шестого столбца. Я это реализовал, но при большом количестве строк таблицы обработка происходит очень медленно и долго приходиться ждать загрузки данных в dataGridView. Я полагаю что DataGridView должен заниматься отображением данных, а не источником данных для вычислений. Как решить эту проблему?
|
Автор: jsharp36 25.9.2015, 10:47 |
После заполнения ридером таблицы, в таблице произведите вычисления, а потом только присваивайте dataGridView1.DataSource. Грид должен реагировать на каждое изменение ячейки, поэтому там висит куча событий. Всегда, когда хотите быстро вычислить, отцепляйте от грида, после вычислений цепляйте. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Vychisleniye-v-dataGridView-id5604f476ae20158a7e8b4567#findElement_E7045_5604fc14ae2015cb01b9cce9_0 |
Автор: rocky7 25.9.2015, 11:14 |
Идея понятна. Только не могу разобраться как обращаться к ячейкам таблицы. |
Автор: jsharp36 25.9.2015, 21:13 |
Элементарно. У таблицы есть Rows. Массив по сути. Наример, так: var row = table.Rows[25]; к ячейке в строке можно обращаться по имени колонки (если оно есть): row["Column1"] = "sdf"; или по номеру: row[3] = "sdf"; Так же и получают значения, только приведенные к object. Надо приводить к нужному типу Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Vychisleniye-v-dataGridView-id5604f476ae20158a7e8b4567#findElement_E7045_56058ec6ae2015d637b9cdb3_0 |
Автор: Курсант 26.9.2015, 10:26 | ||
Пардон... В Visual C++ я обращаюсь к ячейкам (если хочу получить текстовое значение) следующим образом:
Вообще лично мне на ум приходит использование массива, в котором будут выполнены все вычисления, и уже потом из этого массива можно заполнить DataGridView; |