AJUDA COM MUDANCA DE FOCO E MASCARA

DAMASCENO.CESAR 13/03/2013 11:57:45
#420381
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
DAMASCENO.CESAR 24/03/2013 19:55:49
#420975
Pessoal, Criei este tópico mas não tive respostas, se alguem puder ajudar!?!?!?!?!?
NILSONTRES 24/03/2013 21:15:19
#420978
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.
PEGUDO 25/03/2013 07:40:59
#420982
Cara, eu fiz um teste aqui e não travou e nem perdeu máscara.
Veja:



Veja se te ajuda
JP.RAMOS 25/03/2013 08:29:00
#420984
PEGUDO

Como faz para aparecer esse linha tracejada entre fechando a sub ou if ?
PEGUDO 25/03/2013 08:41:47
#420985
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
NILSONTRES 25/03/2013 09:40:18
#420987
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
NILSONTRES 25/03/2013 09:46:20
#420988
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.
PEGUDO 25/03/2013 10:39:32
#420992
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].
DAMASCENO.CESAR 02/04/2013 14:20:05
#421422
Pessoal, obrigado pela ajuda, mas vou desistir, nao funfou do jeito que eu queria.
Tópico encerrado , respostas não são mais permitidas