VB :  MaskeditBox - formatando valores monetários

Aposto que já teve muitas dores de cabeça com o controle MaskeditBox do VB ???  Não cante vitória , se não teve ainda vai ter. Para te ajudar que tal uma rotina que faça a formatação correta dos valores monetários de forma que ao pressionar o ponto (.) os caracteres se posicionem a esquerda do mesmo.  Vamos lá...

1- Inicie um novo projeto no VB e no formulário padrão coloque um controle - MaskeditBox - Maskedbox1

2- Agora no evento KeyPress do controle informe o seguinte código :

Private Sub MaskEdBox1_KeyPress(KeyAscii As Integer)


If KeyAscii >= Asc("0") And KeyAscii <= Asc("9") Or KeyAscii = vbKeyBack Or KeyAscii = Asc(",") Then
    'na faz nada
Else
   If KeyAscii = Asc(".") Then
      KeyAscii = Asc(",")
   Else
      KeyAscii = 0
   End If
End If

End Sub

3- Na propriedade Format do controle MaskedBox informa o seguinte valor : #,##0.00;($#,##0.00)

Ao pressionar o ponto ele é trocado por uma vírgula e os valores se ajustam  ; o mesmo ocorre ao se digitar a virgula.

Simples não é mesmo ???  até a próxima...


José Carlos Macoratti