2016-09-06 2 views
3

Привет, я работаю над приложениями Windows Form, но у меня есть проблема. Мы используем представление сетки данных, и если строка, если один столбец или более пуст, я хочу выделить его. Я не знаю, почему, но мой код не работает. Вот его мой код;Цвет строки DataGridView не изменяется

public Form1() 
    { 
     InitializeComponent(); 
     var dtCombined = PopulateCombinedDatatable();  
     dataGridView.DataSource = dtCombined; 
     HighlateIfEmpty(); 
    } 

    public string[] FindFilePath() 
    { 
     //OPERATIONS 
    } 

    public DataTable PopulateCombinedDatatable() 
    { 

     //MY OPERATIONS 
    } 

    public void HighlateIfEmpty() 
    { 
     foreach (DataGridViewRow row in dataGridView.Rows) 
     { 
      foreach (DataGridViewCell cell in row.Cells) 
      { 
       if ((string)cell.Value == string.Empty) 
       { 
        cell.Style.BackColor = Color.BlueViolet; 
        cell.Style.SelectionBackColor = Color.Aquamarine; 
        row.DefaultCellStyle.SelectionBackColor = Color.BlueViolet; 
        row.DefaultCellStyle.ForeColor = Color.Yellow; 
        row.DefaultCellStyle.BackColor = Color.Aquamarine; 
       } 
      } 
     }      
    } 

Благодаря ...

PS: Этот код находит нужные столбцы и строки, но не красить

+0

Пожалуйста, вызовите функцию чуть позже, может сформировать FormLoad или FormShown событие – TaW

+0

Это не работает :( – Berkin

ответ

1

Вы должны назвать это HighlateIfEmpty() в dataGridView1_CellFormatting случае, для справки я добавил link пожалуйста пройти через это.

https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting.aspx

+0

Спасибо, это сработало :) – Berkin

+0

Спасибо :)))) –

+0

Но здесь она будет называться снова и снова для каждой ячейки! – TaW

0

Я знаю, что этот пост немного старый, но в любом случае. , ,

В DataGridView есть DefaultCellStyle, внутри этого есть SelectionBackColor и SelectionForeColor.

В DataGridView используется идея наследования стиля, если вы обнаружите, что выбранный вами стиль не применяется.

Смежные вопросы