Как приостановить DataGridView при обновлении его столбцов

Как я могу приостановить отображение чего-либо в .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);
14
задан Lane 10 January 2011 в 18:22
поделиться