Inquiridor
Datagrid conferir data e hora vb.net

Pergunta
-
To com um problema aqui em conferir data e hora no grid e já faz um tempão e tentei de tudo e não tive sucesso, se alguém ai puder me dar uma luz. afinal, este datagrid é animal, to demorando mais para aprender sobre o grid do q levei para aprencer vb.net.
Veja que estou tentando fazer e minhas tentativas quase deu certo, mais sempre falta algo e não sei mais o que fazer.
tenho duas colunas preenchidas no grid assim:
Coluna "Data"
Mar 8 15:00
Mar 9 15:00 etc...
Coluna "Inscrições"
Aberto
Fechado
Em andamento
Finalizado etc...
Eu preciso que faça uma pesquisa automática na coluna "Data" e se encontrar uma data ou horário vencido a coluna "Inscrições" made a string para algo com "Fechado" "Em andamento" e assim por diante.
Por exemplo:
Se a data não venceu a cell da coluna "Inscrições" fica assim 'Aberto' e...
Se faltar 2min. para vencer a data da coluna "Data" a coluna "Inscrições" fica assim 'Encerrado" e...
Se a data venceu a cell da coluna "Inscrições" fica assim 'Fechado' e...
A pesquisa tem de ser automática...dai gostaria de sebar se tenho que colocar o código da pesquisa num evento do grid ou num timer.
Se alguém ai puder me dar uma luz fico agradecido.
Todas as Respostas
-
amigo, depende da necessidade
pode ser melhor por em um evento Load caso queria exibir caso carregado, você preenche o grid, e depois valida no método e já traz o grid formatado após o load,
ou no botão salvar para processar tudo e já validar... (para evitar ficar lento se você colocar item a item no grid )
um timer ? talvez seja melhor colocar em uma thread nesse caso e pegar o grid e processa-lo para não travar a tela...
se for preciso validar na hora da digitação, recomendo um cellvalidating..
são as sugestões que tenho pra vc, dependendo da sua necessidade cada 1 se encaixa melhor...
Abraços !
Att, Afonso Fernandes.
-
Obrigado Afonso, olha, o grid é preenchido a todo momento de outro lugar (de outro form) e esta mudando a data e horário constantemente, só que não to conseguindo fazer a pesquisa no grid pela data e horário corretamente como falei acima. Já tentei aqui de todas as maneiras para conferir a data e horário mais não estou obtendo sucesso. Você ai não pode me dar uma idéia sobre a pesquisa?
-
Não foi fácil mais consegui assim...
Private Sub DataGrid1_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles _
DataGrid1.CellEnter, DataGrid1.RowLeave' como a data e hora aparece assim na coluna(0) do grid "Mar 9 20:30 eu separo ela e mudo a hordem da data apenas "Mar 9" para "9 Mar"
Dim vTexto As Object
vTexto = Split(DataGrid1.Rows(e.RowIndex).Cells("Data").Value, " ")
REM vTexto(0) pega data
REM vTexto(1) pega dia
REM vTexto(2) pega horasFor i = 0 To DataGrid1.Rows.Count - 1
If DataGrid1.Rows(i).Cells("Data").Value <= vTexto(0) & " " & vTexto(1) & " " & h1.Text Then
DataGrid1.Rows(i).Cells("Estado").Value = "fechado"
'Me.DataGrid1.Rows(i).DefaultCellStyle.ForeColor = Color.Green
'Me.DataGrid1.Rows(i).DefaultCellStyle.Font = New Font(Me.DataGrid1.DefaultCellStyle.Font, FontStyle.Bold)
Me.DataGrid1.Rows(i).Cells("Estado").Style.ForeColor = Color.Red
Me.DataGrid1.Columns("Estado").DefaultCellStyle.Font = New Font(DataGridView.DefaultFont, FontStyle.Bold)
REM tamanho e estilo font
'Me.DataGrid1.Columns("Estado").DefaultCellStyle = New DataGridViewCellStyle With {.Font = New Drawing.Font("BoomBox", 7.0!, FontStyle.Bold)}
'Me.DataGrid1.Rows(i).DefaultCellStyle = New DataGridViewCellStyle With {.Font = New Drawing.Font("BoomBox", 8.0!, FontStyle.Bold)}
'Me.DataGrid1.Columns("Estado").DefaultCellStyle.Font = New Font(DataGridView.DefaultFont, FontStyle.Bold)
'DataGrid1.Rows(i).Cells("Estado").Value = New Font(DataGridView.DefaultFont, FontStyle.Bold)
Else
DataGrid1.Rows(i).Cells("Estado").Value = "aberto"
'Me.DataGrid1.Rows(i).DefaultCellStyle.ForeColor = Color.Black
'Me.DataGrid1.Rows(i).DefaultCellStyle.Font = New Font(DataGrid1.DefaultCellStyle.Font, FontStyle.Regular)
'Me.DataGrid1.Columns("Estado").DefaultCellStyle.Font = New Font(DataGridView.DefaultFont, FontStyle.Regular)
Me.DataGrid1.Rows(i).Cells("Estado").Style.ForeColor = Color.Green
End If
NextEnd Sub
'No código acima tem mais umas coisas para formatar tipo, style font e bold
ESTE DATAGRID É O BICHO, MAIS EU GOSTO!!!