Медленное заполнение 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д