AJUDA COM MUDANCA DE FOCO E MASCARA
Bom dia pessoal, tou com um problema e gostaria de saber se alguem tem a solucao, é o seguinte:
tenho a rotina no KeyPress do form que muda o foco com a tecla Enter, blz funciona
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If e.KeyChar = Chr(13) Then
SendKeys.Send([Ô]{TAB}[Ô])
e.Handled = True
End If
End Sub
tenho uma rotina pra limpar os controles do form, blz funciona
Public Sub LimpaForm(ByRef Frm As Form)
Dim A
For A = 0 To Frm.Controls.Count - 1
If TypeOf (Frm.Controls(A)) Is TextBox Then
Frm.Controls(A).text = [Ô][Ô]
End If
If TypeOf (Frm.Controls(A)) Is MaskedTextBox Then
Frm.Controls(A).text = [Ô][Ô]
End If
If TypeOf (Frm.Controls(A)) Is ComboBox Then
Frm.Controls(A).SelectedIndex = -1
End If
Next
End Sub
também ponho o evento
Private Sub MskData_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles MskData.GotFocus
MskData.SelectAll()
End Sub
o problema é que quando limpo o form e depois mudo o foco atraves da tecla Enter, o MaskEdBox perde a configuração da máscara, apagando o conteudo
e a mascara e à s vezes trava a digitação. se no evento KeyPress eu tirar a linha: e.Handled = True, o MaskEdBox funfa normal, mas dá aquele bip chato, tem como resolver?
OBS: já passei o valor da máscara para variavel e depois retornei, já usei o SelectStart=0 com SelectionLength= Len(MskData.mask)
e continuou o mesmo problema, se tiver solucao pra usar estas tres rotinas ao mesmo tempo me avisem, se não tiver solução, também me avisem!
Obrigado
tenho a rotina no KeyPress do form que muda o foco com a tecla Enter, blz funciona
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If e.KeyChar = Chr(13) Then
SendKeys.Send([Ô]{TAB}[Ô])
e.Handled = True
End If
End Sub
tenho uma rotina pra limpar os controles do form, blz funciona
Public Sub LimpaForm(ByRef Frm As Form)
Dim A
For A = 0 To Frm.Controls.Count - 1
If TypeOf (Frm.Controls(A)) Is TextBox Then
Frm.Controls(A).text = [Ô][Ô]
End If
If TypeOf (Frm.Controls(A)) Is MaskedTextBox Then
Frm.Controls(A).text = [Ô][Ô]
End If
If TypeOf (Frm.Controls(A)) Is ComboBox Then
Frm.Controls(A).SelectedIndex = -1
End If
Next
End Sub
também ponho o evento
Private Sub MskData_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles MskData.GotFocus
MskData.SelectAll()
End Sub
o problema é que quando limpo o form e depois mudo o foco atraves da tecla Enter, o MaskEdBox perde a configuração da máscara, apagando o conteudo
e a mascara e à s vezes trava a digitação. se no evento KeyPress eu tirar a linha: e.Handled = True, o MaskEdBox funfa normal, mas dá aquele bip chato, tem como resolver?
OBS: já passei o valor da máscara para variavel e depois retornei, já usei o SelectStart=0 com SelectionLength= Len(MskData.mask)
e continuou o mesmo problema, se tiver solucao pra usar estas tres rotinas ao mesmo tempo me avisem, se não tiver solução, também me avisem!
Obrigado
Pessoal, Criei este tópico mas não tive respostas, se alguem puder ajudar!?!?!?!?!?
Tenho até um topico ai, faz tempo, e nunca alguem descobriu, é realmente um bug do controle MaskEdBox.
O que eu fiz:
Private Sub Frm_Orca_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
Select Case ActiveControl.Name
Case [Ô] Mask_1[Ô], [Ô] Mask_2[Ô]
Case Else
If e.KeyChar = Convert.ToChar(13) Then
e.Handled = True
SendKeys.Send([Ô]{TAB}[Ô])
End If
End Select
End Sub
Isso impede o efeito nas Mask
E nas Mask, vc coloca
Private Sub Mask_1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TXT_CNPJ_T.KeyPress
If e.KeyChar = Convert.ToChar(13) Then
e.Handled = True
SendKeys.Send([Ô]{TAB}[Ô])
End If
End Sub
Isso resolve.
O que eu fiz:
Private Sub Frm_Orca_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
Select Case ActiveControl.Name
Case [Ô] Mask_1[Ô], [Ô] Mask_2[Ô]
Case Else
If e.KeyChar = Convert.ToChar(13) Then
e.Handled = True
SendKeys.Send([Ô]{TAB}[Ô])
End If
End Select
End Sub
Isso impede o efeito nas Mask
E nas Mask, vc coloca
Private Sub Mask_1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TXT_CNPJ_T.KeyPress
If e.KeyChar = Convert.ToChar(13) Then
e.Handled = True
SendKeys.Send([Ô]{TAB}[Ô])
End If
End Sub
Isso resolve.
PEGUDO
Como faz para aparecer esse linha tracejada entre fechando a sub ou if ?
Como faz para aparecer esse linha tracejada entre fechando a sub ou if ?
Citação::
PEGUDO
Como faz para aparecer esse linha tracejada entre fechando a sub ou if ?
Tem que baixar este plugin aqui e reiniciar o Visual Studio.
[txt-size=4]Linhas guias[/txt-size]
Repare que as versões que funcionam são o Visual Studio 10 e 11
PEGUDO,
é que na verdade, eu acho que o que esta acontecendo com o DAMASCENO, é o mesmo que acontece comigo, na verdade, não é que perde a
mascara, perde a posição da mascara, se vc der um enter nela, e voltar nela de novo pelo focu normal, sempre começa a digitação em uma posição
errada, como ele disse que tentou selstart e coisas mais,
Se não for isso então, desculpe.
Abraço
é que na verdade, eu acho que o que esta acontecendo com o DAMASCENO, é o mesmo que acontece comigo, na verdade, não é que perde a
mascara, perde a posição da mascara, se vc der um enter nela, e voltar nela de novo pelo focu normal, sempre começa a digitação em uma posição
errada, como ele disse que tentou selstart e coisas mais,
Se não for isso então, desculpe.
Abraço
Citação:Como faz para aparecer esse linha tracejada entre fechando a sub ou if ?
Baixei, e instalei.
Puts, isso é muito show de bola, eu que fico o tempo todo comentando e tentando mil coisas, para deixar o codigo bem interpretado, para possivel ajudante
e herdeiro, isso ai é otimo.
Valeu PEGUDO.
Ok, NILSONTRES
Na verdade eu não tinha reparado que o DAMASCENO.CESAR comentou algo sobre SelStart.
Vamos ver se, quando ele fizer o teste, o exemplo poderá ajudá-lo.
Além do mais, se ele limpa a MaskedTextBox com o LimpaForm, não precisa selecionar nada no GotFocus do MaskedTextBox
e o parâmetro do LimpaForm não deveria ser [txt-color=#0000f0]ByRef Frm As Form[/txt-color] e sim [txt-color=#0000f0]ByVal Frm As Form[/txt-color].
Na verdade eu não tinha reparado que o DAMASCENO.CESAR comentou algo sobre SelStart.
Vamos ver se, quando ele fizer o teste, o exemplo poderá ajudá-lo.
Além do mais, se ele limpa a MaskedTextBox com o LimpaForm, não precisa selecionar nada no GotFocus do MaskedTextBox
e o parâmetro do LimpaForm não deveria ser [txt-color=#0000f0]ByRef Frm As Form[/txt-color] e sim [txt-color=#0000f0]ByVal Frm As Form[/txt-color].
Pessoal, obrigado pela ajuda, mas vou desistir, nao funfou do jeito que eu queria.
Tópico encerrado , respostas não são mais permitidas