DUVIDA TEXTBOX COM VIRGULA

THIAGOMANZ 11/05/2010 16:31:58
#341509
Bom dia Pessoal

Gostaria de saber como faco p manter a virgula numa determinada posicao no caso de digitar valores financeiros ex:

0,00 -> 0,01 -> 0,12 -> 1,20 -> 12,00 -> 120,00 -> 1.200,00 e assim por diante

Agradeco desde ja

Abracos
FABIOPAGANINI 11/05/2010 16:41:38
#341513
voce ja tentou utilizar o componente MaskedTextBox?

abraços
ADHEL 11/05/2010 17:01:34
#341515
Não sei sé é isso que deseja

Private Sub TextBox2_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.LostFocus
TextBox2.Text = Format(TextBox2.Text, [Ô]currency[Ô])

End Sub

se voce digitar 1,5 quando perder o foco fica R$ 1,50
se voce digitar 15 quando perder o foco fica R$ 15,00

FABIOPAGANINI 11/05/2010 17:53:58
#341523
na verdade o nosso amigo queria que a formatação estivesse sendo criada ao mesmo tempo que o usuario for digitando o numero, e se utilizar esta funçao no evento TextChange do componente TextBox, a posição atual do cursor acaba sendo perdida. Sendo iniciada na casa do centavo. assim que o usuario digite um novo numero, o numero anterior deixa de ser uma unidade de centavo e passa a ser uma dezena de centavo. assim por diante.
CALTABIANO 13/05/2010 08:03:51
#341635
Amigo no evento Leave vc pode por esse código

If Not String.IsNullOrEmpty(txtValor.Text) Then
txtValor.Text = Format(CType(txtValor.Text, Decimal), [Ô]0.00[Ô])
End If
MAUMAU 13/05/2010 14:16:04
#341680
Resposta escolhida
no evento Change coloca:
MascMoeda SeuText

Coloca em um modulo:
Public Sub MascMoeda(ByVal controle As TextBox)
Dim i As Integer, T As String
On Error Resume Next
With controle
[ô]Armazena o Text, para nao causar o evento change a toa
T = .Text
[ô]Armazena o SelStart da Dir. para Esq., pois o alinhamento é esq.
i = Len(T) - .SelStart

[ô]Tira a virgula da var T
T = Replace(.Text, [Ô],[Ô], [Ô][Ô])

[ô]Acrescenta zeros
If Len(T) < 3 Then T = String(3 - Len(T), [Ô]0[Ô]) & T
[ô]Monta o nr separando as casas
T = Mid(T, 1, Len(T) - 2) & [Ô],[Ô] & Mid(T, Len(T) - 1)
[ô]Formata o nr
T = Format(T, [Ô]##,###,##0.00[Ô])
[ô]Verifica se o valor do Text é <> da Var. T (para nao travar no evento Change)
If .Text <> T Then .Text = T
[ô]Como mudou o valor do TextBox, tem q voltar o SelStart ao q era antes
.SelStart = Len(T) - i
End With
End Sub
Tópico encerrado , respostas não são mais permitidas