FORMATACAO ENQUANTO SE DIGITA
Boa noite.
Eu tenho formatado as Textbox de valor como Standard, em alguns casos no Textchange ou Lostfocus na caixa. Ha como fazer a formaçao em tempo real? Tipo enquanto a pessoa digita o valor o ponto (.) da milhar e a virgula (,) ir se adequando conforne se digita o valor? Abraços.
Eu tenho formatado as Textbox de valor como Standard, em alguns casos no Textchange ou Lostfocus na caixa. Ha como fazer a formaçao em tempo real? Tipo enquanto a pessoa digita o valor o ponto (.) da milhar e a virgula (,) ir se adequando conforne se digita o valor? Abraços.
colega até agora a melhor formatação deste tipo é esta
o código abaixo é do colega MATIOLI, e não de minha autoria
***Coloque estes códigos num Módulo:***
========================================
***Para testar as funções, coloque um TextBox (Text1) em um form e cole o código abaixo:***
fica show
o código abaixo é do colega MATIOLI, e não de minha autoria
***Coloque estes códigos num Módulo:***
Public Sub MascMoeda(ByVal Controle As TextBox)
Dim i As Integer, T As String
With Controle
[txt-color=#007100] [ô]Armazena o Text, para nao causar o evento change a toa[/txt-color]
T = .Text
[txt-color=#007100] [ô]Armazena o SelStart da Dir. para Esq., pois o alinhamento é esq.[/txt-color]
i = Len(T) - .SelStart
[txt-color=#007100] [ô]Tira a virgula da var T[/txt-color]
T = Replace(.Text, [Ô],[Ô], [Ô][Ô])
[txt-color=#007100] [ô]Acrescenta zeros[/txt-color]
If Len(T) < 3 Then T = String(3 - Len(T), [Ô]0[Ô]) & T
[txt-color=#007100] [ô]Monta o nr separando as casas[/txt-color]
T = Mid(T, 1, Len(T) - 2) & [Ô],[Ô] & Mid(T, Len(T) - 1)
[txt-color=#007100] [ô]Formata o nr para tirar os zeros a mais q podem ficar no começo[/txt-color]
T = Format(T, [Ô]#,##0.00[Ô])
[txt-color=#007100] [ô]Verifica se o valor do Text é <> da Var. T (para nao travar no evento Change)[/txt-color]
If .Text <> T Then .Text = T
[txt-color=#007100] [ô]Como mudou o valor do TextBox, tem q voltar o SelStart ao q era antes[/txt-color]
.SelStart = Len(T) - i
End With
End Sub
Public Sub ApenasNrs(ByRef KeyAscii As Integer)
Select Case KeyAscii
[txt-color=#007100] [ô]Se a tecla for numérica (0 - 9) ou o backspace (8)[/txt-color]
Case Asc([Ô]0[Ô]) To Asc([Ô]9[Ô]), 8
[txt-color=#007100] [ô]Se não for numérica[/txt-color]
Case Else
Beep [txt-color=#007100][ô]Som de erro, nao é necessário[/txt-color]
KeyAscii = 0 [txt-color=#007100][ô]Cancela a entrada[/txt-color]
End Select
End Sub
Public Sub SelTudo(ByVal Controle As TextBox)
[txt-color=#007100][ô]Posiciona o cursor no começo[/txt-color]
Controle.SelStart = 0
[txt-color=#007100][ô]Seleciona todo o TextBox[/txt-color]
Controle.SelLength = Len(Controle.Text)
End Sub
========================================
***Para testar as funções, coloque um TextBox (Text1) em um form e cole o código abaixo:***
Private Sub Text1_Change()
MascMoeda Text1[txt-color=#007100] [ô]Para criar a máscara de moeda[/txt-color]
End Sub
Private Sub Text1_GotFocus()
SelTudo Text1[txt-color=#007100] [ô]Para selecionar todo TextBox[/txt-color]
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
ApenasNrs KeyAscii [ô]Para aceitar apenas nrs
End Sub
fica show
Nao sei o que eu fiz de errado, mas nao funcionou aqui.
Eu criei um projeto novo;
Inseri um textbox1 no formulario;
Colei o codigo acima entre:
Public Class Form1
Codigo
End Class
Apareceram os seguintes erros:
Error 1 [ô]SelStart[ô] is not a member of [ô]System.Windows.Forms.TextBox[ô]. C:\Users\GOAdmin03\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 10 26 WindowsApplication1
Error 2 [ô]String[ô] is a class type and cannot be used as an expression. C:\Users\GOAdmin03\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 14 28 WindowsApplication1
Error 4 [ô]SelStart[ô] is not a member of [ô]System.Windows.Forms.TextBox[ô]. C:\Users\GOAdmin03\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 22 13 WindowsApplication1
Error 5 [ô]SelStart[ô] is not a member of [ô]System.Windows.Forms.TextBox[ô]. C:\Users\GOAdmin03\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 42 9 WindowsApplication1
Error 6 [ô]SelLength[ô] is not a member of [ô]System.Windows.Forms.TextBox[ô]. C:\Users\GOAdmin03\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 44 9 WindowsApplication1
Eu criei um projeto novo;
Inseri um textbox1 no formulario;
Colei o codigo acima entre:
Public Class Form1
Codigo
End Class
Apareceram os seguintes erros:
Error 1 [ô]SelStart[ô] is not a member of [ô]System.Windows.Forms.TextBox[ô]. C:\Users\GOAdmin03\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 10 26 WindowsApplication1
Error 2 [ô]String[ô] is a class type and cannot be used as an expression. C:\Users\GOAdmin03\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 14 28 WindowsApplication1
Error 4 [ô]SelStart[ô] is not a member of [ô]System.Windows.Forms.TextBox[ô]. C:\Users\GOAdmin03\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 22 13 WindowsApplication1
Error 5 [ô]SelStart[ô] is not a member of [ô]System.Windows.Forms.TextBox[ô]. C:\Users\GOAdmin03\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 42 9 WindowsApplication1
Error 6 [ô]SelLength[ô] is not a member of [ô]System.Windows.Forms.TextBox[ô]. C:\Users\GOAdmin03\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb 44 9 WindowsApplication1
é que você está trabalhando com VB.net mas informa no fórum que a dúvida é para VB6. Por isso que o código que Marcelo postou deu erro. Veja esse TextBox com máscara moeda em VB.NET, de TECLA
Ola,
Roberto,
Me desculpe, posso realmente estar fazendo algo errado, sou novo na programaçao. De fato sou administrador e comecei a fazer algumas pequenas aplicacoes para me auxiliar em alguns demonstrativos. Estou trabalhando com VB no Visual Studio 2010, devo usar o codigo mensionado pelo colega? Abraços.
Roberto,
Me desculpe, posso realmente estar fazendo algo errado, sou novo na programaçao. De fato sou administrador e comecei a fazer algumas pequenas aplicacoes para me auxiliar em alguns demonstrativos. Estou trabalhando com VB no Visual Studio 2010, devo usar o codigo mensionado pelo colega? Abraços.
Tópico encerrado , respostas não são mais permitidas