MASKTEXTBOX

ERLANMG 16/10/2013 15:10:35
#430087
Caros Colegas, boa tarde!

Estou tendo problemas com o masktextbox, no seguinte:

Uso o masktextbox com a seguinte mascara [Ô]00/00/0000 90:00[Ô], para o primeiro lançamento tudo bem, mas a partir do segundo lançamento ele começa digitando na segunda posição. Estou limpando o masktextbox como segue:

mtbInicio.Text = String.Empty

Segue print da tela em anexo.

Desde já agradeço a todos.

NILSONTRES 16/10/2013 20:12:39
#430092
Resposta escolhida
Amigo, eu tenho esse problema e busco a solução a uns dois anos, o pessoal entra achando que o problema é de focu etc, mas não é , o que identifiquei é que se vc tiver no KeyPress do form essa chamada

If e.KeyChar = Convert.ToChar(13) Then
e.Handled = True
SendKeys.Send([Ô]{TAB}[Ô])
End If

Ai isso acontece, observe que se vc retirar isso SendKeys.Send([Ô]{TAB}[Ô]), o problema para.
Só que vc perde o recurso de saltar os campos utilizando o ENTER.
Uma Opção é:
If TXT_CPF2.MaskCompleted = True Then
Me.TXT_RG2.Focus()
End If

Assim que a mascara estiver completa ele já salta o campo, assim o usuario não chega a teclar o ENTER.
Ou vc coloca a chamada tab pelo enter em cada controle e tira ele do form.
Já tentei de tudo refreshe/dispose etc... após iserir um registro mas nada da certo, só essas gambiarras mesmo.

ERLANMG 21/10/2013 08:21:29
#430189
NILSONTRES, obrigado, pois não tinha testado sem a instrução [Ô]ENTER[Ô].

E ai pessoal, como voces usam mascaras no vbnet?

Desde já agradeço a atenção de todos.

Abraços.

FONSANTOS 21/10/2013 10:47:20
#430199
Tenta usar a mask desta forma

##/##/#### ##:## fiz aqui e funcionou.
'
Posta ai oq deu!
ERLANMG 21/10/2013 11:18:37
#430200

FONSANTOS, bom dia!

Obrigado pela atenção.

Testei como vc disse, mas não funcionou.

Somente acontece este problema quando tenho dentro do evento keypress do form a função que ao teclar enter o sistema envia um TAB, e também a propriedade keypreview = true.

Segue abaixo a função que uso para a tecla enter.

Private Sub FrmJornadas_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
SendKeys.Send([Ô]{TAB}[Ô])
e.Handled = True
End If
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Escape) Then
Me.Close()
Me.Dispose()
End If
End Sub
ERLANMG 21/10/2013 15:30:18
#430215
Caros colegas,

Consegui resolver da seguinte maneira:

Substituir o código

Private Sub FrmJornadas_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
SendKeys.Send([Ô]{TAB}[Ô])
e.Handled = True
End If
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Escape) Then
Me.Close()
Me.Dispose()
End If
End Sub


Por este:

Private Sub FrmJornadas_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select e.KeyCode
Case Is = Keys.Enter
SendKeys.Send([Ô]{TAB}[Ô])
e.Handled = True
End Select
End Sub

Tópico encerrado , respostas não são mais permitidas