форматирование ячеек замедляет заполнение datagridview?
Здравствуйте, у меня есть проблема и вопрос, dg-это datagridview, который у меня есть, который я заполняю созданным источником привязки
это и есть код
daActivity.SelectCommand = new SqlCommand("SELECT * from DataActivity", cs); dsActivity.Clear(); daActivity.Fill(dsActivity); ActivityBS.DataSource = dsActivity.Tables[0]; dg.DataSource = ActivityBS;
и на событии форматирования ячейки у меня есть этот код
for (int i = 0; i < dg.RowCount; i++) { string status = dg.Rows[i].Cells[12].Value.ToString(); if (status == "OPEN") { dg.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.LightCoral; } if (status == "INFO") { dg.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.LightBlue; } if (status == "CLOSED") { dg.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.LightGreen; } }
и это событие замедляет заполнение datagridview (dg)...... почему???? есть ли способ преодолеть это, или, может быть, что-то в моем коде или ....ну мне нужна помощь и мнение
__TR__
Попробуйте заменить 3 оператора if в вашем коде оператором switch.
Wes Aday
Трудно сказать без дополнительного контекста, но я согласен с OriginalGriff. Мне кажется, что вы все время переформатируете клетки.
shonezi
да, вы правы, все вы, я все время переформатируюсь, как остановить это и сделать это только один раз
shonezi
как это сделать??
__TR__
Ссылаться:
http://msdn.microsoft.com/en-us/library/06tc147t(v=против 100).aspx
shonezi
Я немного запутался в этом вопросе
__TR__
Его, как это:
string status = dg.Rows[i].Ячейки[12].Значение.Метод toString();
переключатель (состояние)
{
дело "открыто":
ДГ.Строки[я].DefaultCellStyle.BackColor = Система.Рисование.Цвет.LightCoral;
перерыв;
кейс "информация":
ДГ.Строки[я].DefaultCellStyle.BackColor = Система.Рисование.Цвет.Светло-голубой;
перерыв;
дело "закрыто":
ДГ.Строки[я].DefaultCellStyle.BackColor = Система.Рисование.Цвет.Светло-зеленый;
перерыв;
по умолчанию:
перерыв;
}