Usuário com melhor resposta
Cor datagrid

Pergunta
-
Respostas
-
Olá,
Vou dar um exemplo e espero que ajude:
if (informacaoEscolhida == x) { dataGridView1.Rows.Add("coluna1", "coluna2"); dataGridView1.Rows[dataGridView1.Rows.Count - 2].DefaultCellStyle.BackColor = Color.Red; } else { dataGridView1.Rows.Add("coluna1", "coluna2"); dataGridView1.Rows[dataGridView1.Rows.Count - 2].DefaultCellStyle.BackColor = Color.Blue; }
Algumas considerações:
1) A condição (if) que eu coloquei foi só pra exemplificar a condição que mencionou na sua pergunta, de o usuário escolher um dado ou outro pra inserir
2) Estou exemplificando minha grid com apenas duas colunas, por isso que o Rows.Add está daquela forma.
3) Estou assumindo que essa datagrid esteja habilitada para insert manual diretamente nela (por isso estou usando -2 no código. Se sua grid não permite que ele digite e insira diretamente, deixe apenas -1)
Espero ter ajudado!
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Sugerido como Resposta Douglas Agenor sexta-feira, 2 de dezembro de 2016 13:24
- Marcado como Resposta SouthNew sábado, 3 de dezembro de 2016 18:37
Todas as Respostas
-
Olá,
Vou dar um exemplo e espero que ajude:
if (informacaoEscolhida == x) { dataGridView1.Rows.Add("coluna1", "coluna2"); dataGridView1.Rows[dataGridView1.Rows.Count - 2].DefaultCellStyle.BackColor = Color.Red; } else { dataGridView1.Rows.Add("coluna1", "coluna2"); dataGridView1.Rows[dataGridView1.Rows.Count - 2].DefaultCellStyle.BackColor = Color.Blue; }
Algumas considerações:
1) A condição (if) que eu coloquei foi só pra exemplificar a condição que mencionou na sua pergunta, de o usuário escolher um dado ou outro pra inserir
2) Estou exemplificando minha grid com apenas duas colunas, por isso que o Rows.Add está daquela forma.
3) Estou assumindo que essa datagrid esteja habilitada para insert manual diretamente nela (por isso estou usando -2 no código. Se sua grid não permite que ele digite e insira diretamente, deixe apenas -1)
Espero ter ajudado!
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Sugerido como Resposta Douglas Agenor sexta-feira, 2 de dezembro de 2016 13:24
- Marcado como Resposta SouthNew sábado, 3 de dezembro de 2016 18:37
-
Queria alguma coisa assim:
if(dataGridView1.Columns[7] == 'TITULAR'){ dataGridView1.DefaultCellStyle.BackColor = System.Drawing.Color.LightGreen; }
So que esse comando não é certo. Poderia me ajudar?
- Editado SouthNew sexta-feira, 2 de dezembro de 2016 15:24
-
Não entendi o que quer.
Como mencionei, se quer formatar uma linha que acabou de inserir no grid, utilize meu exemplo.
Para manipular uma linha você precisa especificar ela (.Rows[index])
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco -
Eu gostaria de que se a informação da coluna 7 que esta no banco for TITULAR a linha fica verde e se for SUBSTITUTA fica amarelo.
No exemplo que achei ela ta ficando toda datagride em verde e eu soquero o lugar que esta Titular.
MEU EXEMPLO:
dataGridView1.DefaultCellStyle.BackColor = System.Drawing.Color.LightGreen;
Acho que agora da pra entender melhor.
Ja tentei dessa forma e da erro:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { DataGridViewRow r = dataGridView1.Rows[e.RowIndex]; if (r["campo"].toString() == "TITULAR") r.DefaultCellStyle.BackColor = System.Drawing.Color.Red; else r.DefaultCellStyle.BackColor = System.Drawing.Color.White; }
- Editado SouthNew sábado, 3 de dezembro de 2016 14:50
-
Olá,
Eu faria da seguinte forma.
Logo após carregar os dados (não sei como está adicionando as linhas nessa grid, porém após ter esses dados preenchidos na grid, eu chamaria um método criado por mim que fizesse tal verificação). Segue o código de exemplo abaixo. (Inseri duas linhas de teste antes de chamar o método apenas para exemplificar):
private void CarregarDados() { dataGridView1.Rows.Add("TITULAR"); dataGridView1.Rows.Add("SUBSTITUTA"); FormatarGrid(); } private void FormatarGrid() { foreach (DataGridViewRow r in dataGridView1.Rows) { if (r.Cells["NomeColuna"].Value.ToString().ToUpper().Equals("TITULAR")) r.Cells["NomeColuna"].Style.BackColor = System.Drawing.Color.Red; else r.Cells["NomeColuna"].Style.BackColor = System.Drawing.Color.White; } }
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Editado André SeccoMVP domingo, 4 de dezembro de 2016 13:41