Как я могу приостановить .NET DataGridView от отображения чего-либо, когда я обновляю его столбцы?
Вот мой текущий код. Он работает нормально, но он очень медленный в цикле foreach; вы можете видеть, что полоса прокрутки в горизонте растет медленно, когда добавляется каждый столбец. Я сам создаю столбцы пользовательского интерфейса, так как я не хочу использовать dataGridView1.AutoGenerateColumns по разным причинам.
// Disconnect and reset DataGridView
dataGridView1.DataSource = null;
dataGridView1.SuspendLayout();
dataGridView1.Columns.Clear();
// Get data from SQL
DataTable dt = new DataTable();
SqlDataAdapter adapter = new SqlDataAdapter("select * from employeehist", conn);
adapter.Fill(dt);
// Build DataGridView columns
foreach (DataColumn c in dt.Columns)
{
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
col.SortMode = DataGridViewColumnSortMode.NotSortable;
col.DataPropertyName = c.ColumnName;
col.HeaderText = c.Caption;
dataGridView1.Columns.Add(col);
}
// Reconnect DataGridView
dataGridView1.DataSource = dt;
dataGridView1.ResumeLayout(true);