MASCARA NO DATAGRIDVIEW NA HORA DE DIGITAR
Boa tarde pessoal, tenho uma aplicação onde se faz necessário digitar diretamente no DataGridView e procurei pela internet como colocar máscara, mas a única coisa que encontrei foi exemplos onde se escolhe o Column Type como MaskedEditBox, que no meu caso (VS 2010) não tenho essa opção (Ou não sei como deixá-la disponÃvel).
Formatar após a digitação, quando outra célula recebe o foco já sei como fazer, então gostaria de saber se é possÃvel deixar o formato para o momento de digitação como no MaskedEditBox.
Se puderem me ajudar...
Sugiro formatar a data após a digitação
Eu faço assim, aà o usuário digita a data na forma que quiser e o sistema formata ela automaticamente
Private Sub Grid1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Grid1.CellEndEdit
If Grid1.Columns(e.ColumnIndex).Name = [Ô]Data[Ô] then
Dim St As String = [Ô][Ô]
For Each C As Char In Grid1.CurrentCell.FormattedValue
If Char.IsDigit(C) Then St += C
Next
If St.Length <> 6 And St.Length <> 8 Then [ô]Não possui a quantidade de caracteres para ser uma data
St = [Ô][Ô]
Else
St = St.Insert(4, [Ô]/[Ô]).Insert(2, [Ô]/[Ô]) [ô]Insiro os caracteres separadores da data
If Not IsDate(St) Then St = [Ô][Ô] [ô]Se o valor formatado não for uma data limpo a string
End If
Grid1.currentcell.Value = st
End Sub
isso permite que o usuário digite a data de qualquer forma.
por exemplo: Se ele digitar 100316 mostrará 10/03/16
Se digitar 10032016 mostrará 10/03/2016
Se digitar 160016 limpará o texto pois não são carateres para uma data
Espero ter ajudado
Eu faço assim, aà o usuário digita a data na forma que quiser e o sistema formata ela automaticamente
Private Sub Grid1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Grid1.CellEndEdit
If Grid1.Columns(e.ColumnIndex).Name = [Ô]Data[Ô] then
Dim St As String = [Ô][Ô]
For Each C As Char In Grid1.CurrentCell.FormattedValue
If Char.IsDigit(C) Then St += C
Next
If St.Length <> 6 And St.Length <> 8 Then [ô]Não possui a quantidade de caracteres para ser uma data
St = [Ô][Ô]
Else
St = St.Insert(4, [Ô]/[Ô]).Insert(2, [Ô]/[Ô]) [ô]Insiro os caracteres separadores da data
If Not IsDate(St) Then St = [Ô][Ô] [ô]Se o valor formatado não for uma data limpo a string
End If
Grid1.currentcell.Value = st
End Sub
isso permite que o usuário digite a data de qualquer forma.
por exemplo: Se ele digitar 100316 mostrará 10/03/16
Se digitar 10032016 mostrará 10/03/2016
Se digitar 160016 limpará o texto pois não são carateres para uma data
Espero ter ajudado
Adiciona essa DLL nas referencias de seu projeto. Depois clique com botão direito na sua datagridview vá em edit columns e na propriedade columnType mude para DataGridViewMaskedTextColumn que dá certo
Se te interessar te passo o sourcecode dessa dll
PLUGSOFTSM, como disse acima, já tenho a formatação na saÃda da célula.
ACCIOLLY, se você puder, passa sim meu email: damasceno.cesar@hotmail.com
Estou em aula agora, então não tem como por pra rodar.
Amanhã cedo já baixo a dll ponho pra funcionar e encerro o tópico
ACCIOLLY, se você puder, passa sim meu email: damasceno.cesar@hotmail.com
Estou em aula agora, então não tem como por pra rodar.
Amanhã cedo já baixo a dll ponho pra funcionar e encerro o tópico
ACCIOLY, show de bola!!
Obrigado pelo source code, sobrando um tempo vou passar pro vb.net para estudá-lo.
Obrigado PLUGSOFTSM pela colaboração.
Encerrando tópico
Obrigado pelo source code, sobrando um tempo vou passar pro vb.net para estudá-lo.
Obrigado PLUGSOFTSM pela colaboração.
Encerrando tópico
Tópico encerrado , respostas não são mais permitidas