Fazer um IF de coluna Data
17/03/2015
0
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if(e.Value != null && e.Value.Equals(DateTime)) { DataGridViewRow row = dataGridView1.Rows[e.RowIndex]; row.DefaultCellStyle.ForeColor = Color.Red; } }
Jair Souza
Posts
18/03/2015
Randrade
18/03/2015
Jair Souza
Agradeço o interesse em ajudar.
18/03/2015
Jothaz
DateTime.TryParse
Ou DateTime.Parse:
string strDate = obj.ToString(); try { DateTime dt = DateTime.Parse(strDate); if(dt != DateTime.MinValue && dt != DateTime.MaxValue) return true; return false; } catch { return false; }
18/03/2015
Jair Souza
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150318-173303.jpg[/img]
18/03/2015
Randrade
18/03/2015
Jair Souza
18/03/2015
Thiago Santana
18/03/2015
Jair Souza
19/03/2015
Thiago Santana
Com ele você pode capturar as informações e manipular várias coisas, se for Windows Form não lembro qual o evento correto do GridView
19/03/2015
Jothaz
Se for quando o campo estiver preenchido deve vir vermelho senão deve ficar preto, por que você não teste null?
Ou na entrada de dados o campo data pode ser preenchido com valores que não sejam data? Se for assim, no meu ponto de vista a modelagem esta equivocada, mas como modelagem é igual fiofó cada um tem a sua kkkkkk, você pode contornar a situação usando o comando que postei DateTime.TryParse, basta ter um pouco de trabalho e criar um método para validar:
//O teste fica assim, talvez tenha de usar o .ToString, testa ai. if(e.Value != null && ValidaData(e.Value)) //Método para validar se o conteúdo é DateTime private bool ValidaData(String ValorData) { if (DateTime.TryParse(badInput, out dateTime2)) { return true; } else { return false; } }
Não testei o exemplo acima, então esta passível de conter erro. É só uma ideia de como pode ser feito.
19/03/2015
Jair Souza
private void locacaoDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { for (int i = 0; i < locacaoDataGridView.Rows.Count; i++) if (!String.IsNullOrEmpty((string)locacaoDataGridView.Rows[i].Cells[3].Value.ToString())) { e.CellStyle.ForeColor = Color.Red; } }
Mas assim ficam todas as linhas color.red...
19/03/2015
Jothaz
private void locacaoDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { for (int i = 0; i < locacaoDataGridView.Rows.Count; i++) if (!String.IsNullOrEmpty((string)locacaoDataGridView.Rows[i].Cells[3].Value.ToString())) { e.CellStyle.ForeColor = Color.Red; } }
Mas assim ficam todas as linhas color.red...
Você não respondeu o que perguntei! Como não sei claramente qual a regra nem conheço seu ambiente fica difícil ajudar!
O código que você postou deixar vermelho todos os campos diferentes de null ou empty.
Qual a regra que você que implementar?
Qual o conteúdo do campo?
É uma data?
Ou pode ser uma Data ou um outro valor que não seja uma data?
Se a regra para deixar vermelho for ser diferente de null/empty e deve ser uma Data válida é só implementar o código que postei.
19/03/2015
Thiago Santana
O problema é que você está utilizando o evento CellFormatting
19/03/2015
Jair Souza
private void locacaoDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { for (int i = 0; i < locacaoDataGridView.Rows.Count; i++) if (!String.IsNullOrEmpty((string)locacaoDataGridView.Rows[i].Cells[3].Value.ToString())) { e.CellStyle.ForeColor = Color.Red; } }
Mas assim ficam todas as linhas color.red...
Você não respondeu o que perguntei! Como não sei claramente qual a regra nem conheço seu ambiente fica difícil ajudar!
O código que você postou deixar vermelho todos os campos diferentes de null ou empty.
Qual a regra que você que implementar?
Qual o conteúdo do campo?
É uma data?
Ou pode ser uma Data ou um outro valor que não seja uma data?
Se a regra para deixar vermelho for ser diferente de null/empty e deve ser uma Data válida é só implementar o código que postei.
Primeiro desculpe se ficou confuso, recapitulando :
O campo é somente data, veja na imagem :
[img]http://arquivo.devmedia.com.br/forum/imagem/343353-20150319-151428.jpg[/img]
Clique aqui para fazer login e interagir na Comunidade :)