У меня есть консольное приложение, к которому добавлена форма.Как изменить цвет строки в представлении DataGrid
Эта форма имеет вид datagrid в нем со всеми свойствами, оставленными по умолчанию.
В Program.cs у меня есть этот код в главном методе:
CompanyActions objCompanyActions = new CompanyActions();
List<Company> analyzedData = new List<Company>();
List<Company> CompaniesFromExternalSource = objCompanyActions.GetExternalCompanyData(@"company.csv");
analyzedData = objCompanyActions.Compare(CompaniesFromExternalSource);
AnalysisForm objAnalysisForm = new AnalysisForm();
objAnalysisForm.ShowAnalysisData(analyzedData);
Application.Run(objAnalysisForm);
В форме у меня есть этот код:
public void ShowAnalysisData(List<Company> analysisData)
{
analysisGridView.DataSource = analysisData;
UpdateGridStyle();
}
и
private void UpdateGridStyle()
{
foreach (DataGridViewRow row in analysisGridView.Rows)
{
string RowType = row.Cells[0].Value.ToString();
if (RowType == "Insert")
{
row.DefaultCellStyle.BackColor = Color.Green;
// row.DefaultCellStyle.ForeColor = Color.Black;
}
else if (RowType == "Update")
{
row.DefaultCellStyle.BackColor = Color.Yellow;
// row.DefaultCellStyle.ForeColor = Color.Black;
}
else
{
row.DefaultCellStyle.BackColor = Color.Gray;
// row.DefaultCellStyle.ForeColor = Color.Black;
}
}
Это Безразлично» т работы. Сетка по-прежнему сохраняет белый фон по умолчанию для каждой строки? Что я здесь делаю неправильно?
С уважением.
Да, это сработало, но есть заметная задержка при прокрутке сетки! Любые идеи, почему это происходит? – Codehelp
Если вы прокрутите весь путь вниз, а затем выполните резервное копирование, сетка все еще отстает? –
Кроме того, может быть, стоит просто сделать это с помощью jquery, поскольку вы просто смотрите на значение ячеек, а не на какое-то значение на стороне сервера. Это может оказаться более быстрым решением. –