Я боролся с событием CellFormatting, это так медленно.Событие CellFormatting в C# очень медленное
У меня есть DataGridView что-то вроде этого:
Я написал функцию, которая срабатывает при нажатии кнопки флажок в заголовке, и это делает все флажки, чтобы проверить в этой колонке .. ..
private void checkboxHeader_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.RowCount; i++)
{
dataGridView1[0, i].Value = ((CheckBox)dataGridView1.Controls.Find("checkboxHeader", true)[0]).Checked;
}
//dataGridView1.EndEdit();
}
И эта функция работает, когда у меня есть что-то вроде 10 строк он работает отлично, но когда у меня есть 300 строк то, что я должен иметь ... есть что-то вроде задержки 9 секунд для принятия всех флажки и я узнал, что это связано с событием CellFormating.
Мой CellFormating код события:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridViewCellStyle _myStyle = new DataGridViewCellStyle();
int index = gdv_row.FindIndex(p => p.log == (string)dataGridView1.Rows[e.RowIndex].Cells[1].Value);
if (index != -1 && dataGridView1.Columns[e.ColumnIndex] is DataGridViewTextBoxColumn && e.RowIndex != -1)
{
//e.CellStyle = _myStyle;
_myStyle.Font = gdv_row[index].font;
_myStyle.BackColor = gdv_row[index].backgroundcolor_color;
_myStyle.ForeColor = gdv_row[index].foregroundcolor_color;
dataGridView1.Rows[e.RowIndex].Cells[1].Style = _myStyle;
}
}
и я использовал DoubleBuffering for DataGridView. Теперь я не знаю, что мне делать с этим событием CellFormatting ...
SuspendLayout собирается помочь вам, когда вы добавляете новый объектов на форме. Согласно MSDN, SuspendLayout 'Временно приостанавливает логику компоновки для элемента управления. ' –
Спасибо за ответ, не могли бы вы дать ответ более подробно или как это, потому что я не знаю, как использовать эти функции и где? – Ehsan
На самом деле я сделал то, что вы сказали, но есть еще эта задержка, даже я вижу большую задержку! но что мне делать? вы думаете, что у dataGridView1 [0, i] есть некоторая ошибка, и это задерживает? :( – Ehsan