Медленное заполнение DataGridView - C#
Формулировка задачи:
Возникла проблема с заполнением. У меня есть dgv размером 80х255
Изначально нужно заполнить это счастье нулями, а потом изменить значение произвольной ячейки в каждой строке на 1 или -1.
Нулями заполняет, однако долго. Я поставил dataGridView1.Update(); чтобы увидеть процесс заполнения, оказалось что на заполнение строки в 80 ячеек уходит около 1 секунды.
Итого на заполнение 255 строк затрачивается около 3 минут..
Нельзя ли как-то ускорить этот процесс?
private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 80; i++) dataGridView1.Columns.Add("A" + Convert.ToString(i + 1), "A" + Convert.ToString(i + 1)); dataGridView1.Rows.Add(255); for (int j = 0; j < 255; j++) dataGridView1.Rows[j].HeaderCell.Value = "X" + Convert.ToString(j + 1); /* */ } private void button2_Click(object sender, EventArgs e) { for (int j = 0; j < dataGridView1.RowCount; j++) for (int i = 0; i < dataGridView1.ColumnCount; i++) { dataGridView1[i,j].Value = 0; dataGridView1.Update(); } } private void button3_Click(object sender, EventArgs e) { for (int i = 0; i < dataGridView1.RowCount; i++) { while (val == 0) ; val = rand.Next(-1, 1); dataGridView1[i, rand.Next(0, 80)].Value = val; dataGridView1.Update(); } }
Решение задачи: «Медленное заполнение DataGridView»
textual
Листинг программы
var global_start = DateTime.Now; for (int j = 0; j < dataGridView1.RowCount; j++) for (int i = 0; i < dataGridView1.ColumnCount; i++) { dataGridView1[i,j].Value = 0; } var global_end = DateTime.Now; var res= global_end - global_start; dataGridView1.Update();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д