Alterar o BackColor de uma célula não funciona no construtor do formulário
Meu código parece bem direto, não tenho certeza do que estou perdendo ...
Estou percorrendo cada linhadataGridView.Rows
, percorrendo cada célula e verificando se seu valor é"OK"
então eu mudo a cor da célula paraColor.Red
e também escrever"IF WAS TRUE"
no console.
Eu tenho aquele pequeno"IF WAS TRUE"
na janela do console apenas para provar a mim mesmo que a instrução if está sendo capturada (é). Mas a cor da minha célula permanece inalteradaWhite
.
Qualquer conselho seria apreciado!
public partial class Form1 : Form
{
public static BindingList<Record> record_list = new BindingList<Record> { };
public static DataGridViewCellStyle style = new DataGridViewCellStyle();
public Form1()
{
InitializeComponent();
FillData();
foreach (DataGridViewRow row in dataGridView.Rows)
{
for (var i = 0; i < row.Cells.Count; i++)
{
Console.WriteLine(row.Cells[i].Value);
if (row.Cells[i].Value as string == "OK")
{
row.Cells[i].Style.BackColor = Color.Red;
Console.WriteLine("IF WAS TRUE");
}
}
}
}
void FillData()
{
record_list.Add(new Record("Support-19", "TEST", 0, 0.0, "",
"LOC CODE2", 0.0, 0, 0, 0.0, ""));
record_list.Add(new Record("Support-99", "ROBOTS", 0, 0.0, "",
"OK", 0.0, 0, 0, 0.0, ""));
record_list.Add(new Record("Support-27", "TEST2", 0, 0.0, "",
"LOC CODE1", 0.0, 0, 0, 0.0, ""));
dataGridView.DataSource = record_list;
}
}
public class Record
{
public string Station { get; set; }
public string UserName { get; set; }
public int EvtActive { get; set; }
public double EvtTime { get; set; }
public string EvtTimeString { get; set; }
public string LocCode { get; set; }
public double LastLoop { get; set; }
public int CompLvl { get; set; }
public int RecordID { get; set; }
public double ConnectTime { get; set; }
public string Notes { get; set; }
public Record(string a, string b, int c, double d, string e,
string f, double g, int h, int i, double j, string k)
{
this.Station = a;
this.UserName = b;
this.EvtActive = c;
this.EvtTime = d;
this.EvtTimeString = e;
this.LocCode = f;
this.LastLoop = g;
this.CompLvl = h;
this.RecordID = i;
this.ConnectTime = j;
this.Notes = k;
}
}
EDIT: Isso foi marcado como duplicado, mas isso parece diferente para mim. No outro post do SO, parece que uma célula está sendo enviada para uma função diretamente onde, enquanto eu estou iterando sobre as células. Eu tento chamar a propriedade BackColor de maneira semelhante e não recebo resultados ...