FORMATA?ÃO DE VALORES NA CAIXA TEXTBOX
Oi pessoal,
Como faço para formatar valores em uma caixa do textbox, gostaria que esta formação se faça quando eu estou digitando o valor, por exemplo:
tenho uma caixa textbox com o valor 0,00, ao digitar o valor, a caixa vai formatando o mesmo, ou seja, se digitar 2 ficaria 2,00 e se eu pressionar a virgual [Ô],[Ô] passaria a preencher os centavos.
Se alguém tiver uma função já pronta e se me pudesse passar ficaria agradecido, pois o meu tempo está curto para entregar o sistema.
Obrigado,
Como faço para formatar valores em uma caixa do textbox, gostaria que esta formação se faça quando eu estou digitando o valor, por exemplo:
tenho uma caixa textbox com o valor 0,00, ao digitar o valor, a caixa vai formatando o mesmo, ou seja, se digitar 2 ficaria 2,00 e se eu pressionar a virgual [Ô],[Ô] passaria a preencher os centavos.
Se alguém tiver uma função já pronta e se me pudesse passar ficaria agradecido, pois o meu tempo está curto para entregar o sistema.
Obrigado,
Tenho uma função bem legal para formatar valores moeda na TextBox. Está em C#, mas você pode converter para VBNet facilmente.
Coloque em um módulo;
Depois, no evento TextChange, do TextBox, coloque
Espero ter ajudado.
Coloque em um módulo;
// função para formatar TextBox com Valor Moeda
public static void ValorMoeda(TextBox controle)
{
String n = String.Empty;
Double v= 0;
n = controle.Text.Replace([Ô],[Ô], [Ô][Ô]).Replace([Ô].[Ô], [Ô][Ô]);
if (n.Equals([Ô][Ô]))
{
n = [Ô]000[Ô];
}
n = n.PadLeft(3,(char)[ô]0[ô]);
if (n.Length > 3 && n.Substring(0, 1) == [Ô]0[Ô])
{
n = n.Substring(1, n.Length - 1);
}
v = Convert.ToDouble(n) / 100;
controle.Text = String.Format([Ô]{0:N}[Ô], v);
controle.SelectionStart = controle.Text.Length;
}
Depois, no evento TextChange, do TextBox, coloque
Gerais.ValorMoeda(txt1a3);
Espero ter ajudado.
usei o site para conversão de c# para vb.net - http://www.carlosag.net/tools/codetranslator/ , e o resultado foi esse.
Teste para ver se funciona, qualquer coisa, diz aÃ.
Public Shared Sub ValorMoeda(ByVal controle As TextBox)
Dim n As String = String.Empty
Dim v As Double = 0
n = controle.Text.Replace([Ô],[Ô], [Ô][Ô]).Replace([Ô].[Ô], [Ô][Ô])
If n.Equals([Ô][Ô]) Then
n = [Ô]000[Ô]
End If
n = n.PadLeft(3, CType(Microsoft.VisualBasic.ChrW(48),Char))
If ((n.Length > 3) _
AndAlso (n.Substring(0, 1) = [Ô]0[Ô])) Then
n = n.Substring(1, (n.Length - 1))
End If
v = (Convert.ToDouble(n) / 100)
controle.Text = String.Format([Ô]{0:N}[Ô], v)
controle.SelectionStart = controle.Text.Length
End Sub
Teste para ver se funciona, qualquer coisa, diz aÃ.
PERCIFILHO, tentei colocar a funcção que você me enviou mas não deu certo, tem mais alguma idéia??
Obrigado
Obrigado
Public Shared Sub TextBoxMoeda(ByRef txt As TextBox)
Dim n As String = String.Empty
Dim v As Double = 0
Try
n = txt.Text.Replace([Ô],[Ô], [Ô][Ô]).Replace([Ô].[Ô], [Ô][Ô])
If n.Equals([Ô][Ô]) Then n = [Ô]000[Ô]
n = n.PadLeft(3, [Ô]0[Ô])
If n.Length > 3 And n.Substring(0, 1) = [Ô]0[Ô] Then n = n.Substring(1, n.Length - 1)
v = Convert.ToDouble(n) / 100
txt.Text = String.Format([Ô]{0:N}[Ô], v)
txt.SelectionStart = txt.Text.Length
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]TextBoxMoeda[Ô])
End Try
End Sub
no textchange do seu textbox poe
Utils.TextBoxMoeda(SeuTextBox)
Dim n As String = String.Empty
Dim v As Double = 0
Try
n = txt.Text.Replace([Ô],[Ô], [Ô][Ô]).Replace([Ô].[Ô], [Ô][Ô])
If n.Equals([Ô][Ô]) Then n = [Ô]000[Ô]
n = n.PadLeft(3, [Ô]0[Ô])
If n.Length > 3 And n.Substring(0, 1) = [Ô]0[Ô] Then n = n.Substring(1, n.Length - 1)
v = Convert.ToDouble(n) / 100
txt.Text = String.Format([Ô]{0:N}[Ô], v)
txt.SelectionStart = txt.Text.Length
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]TextBoxMoeda[Ô])
End Try
End Sub
no textchange do seu textbox poe
Utils.TextBoxMoeda(SeuTextBox)
Cara,
Baixa esta dll que eu fiz.
1º - Baixa o zip e copie a dll para a pasta Debug do seu projeto;
2º - Adicione uma referência a ela, no seu projeto: Menu Project / Add Referencies;
3º - Clique no botão Browser, vá até a pasta onde você salvou a dll e clique duas vezes nela.
Depois você pode criar um código, tipo este exemplo aà de baixo:
IMPORTANTE: Eu aconselho a usar a propriedade KeyUp do TextBox. Masmo porque eu não testei na propriedade Textchanged ou KeyPress
Depois é só digitar como se fosse um caixa eletrônico, lembrando que o cursor sempre vai pro final da TextBox depois de cada digitação com SelectionStart = 10000000.
Espero ter ajudado.
Baixa esta dll que eu fiz.
1º - Baixa o zip e copie a dll para a pasta Debug do seu projeto;
2º - Adicione uma referência a ela, no seu projeto: Menu Project / Add Referencies;
3º - Clique no botão Browser, vá até a pasta onde você salvou a dll e clique duas vezes nela.
Depois você pode criar um código, tipo este exemplo aà de baixo:
[txt-color=#0000f0]Private Sub[/txt-color] TextBox1_KeyUp(sender As Object, e As EventArgs) Handles TextBox1.KeyUp
[txt-color=#0000f0]Using[/txt-color] formata [txt-color=#0000f0]As New[/txt-color] formataNumeros.formataNumeros(Me.TextBox1.Text.Trim)
Me.TextBox1.Text = formata.pegaNumero
Me.TextBox1.SelectionStart = 10000000
[txt-color=#0000f0] End Using
End Sub[/txt-color]
IMPORTANTE: Eu aconselho a usar a propriedade KeyUp do TextBox. Masmo porque eu não testei na propriedade Textchanged ou KeyPress
Depois é só digitar como se fosse um caixa eletrônico, lembrando que o cursor sempre vai pro final da TextBox depois de cada digitação com SelectionStart = 10000000.
Espero ter ajudado.
PEGUDO, você esqueceu de colocar a DLL no post
Pessoal, ou eu estou muito burro ou não estou sabendo colocar a função no meu sistema, pois está dando erro.
Veja como estou fazendo:
Private Sub Txt_ValCon_TextChanged(sender As System.Object, e As System.EventArgs) Handles Txt_ValCon.TextChanged
Me.Txt_ValCon.Text = TextBoxMoeda(Me.Txt_ValCon.Text)
End Sub
mas me retorna a seguinte mensagem:
Erro 2 [ô]TextBoxMoeda[ô] não está declarado. Ele pode ser inacessÃvel devido ao seu nÃvel de proteção.
o que estou fazendo de errado ai pessoal
Veja como estou fazendo:
Private Sub Txt_ValCon_TextChanged(sender As System.Object, e As System.EventArgs) Handles Txt_ValCon.TextChanged
Me.Txt_ValCon.Text = TextBoxMoeda(Me.Txt_ValCon.Text)
End Sub
mas me retorna a seguinte mensagem:
Erro 2 [ô]TextBoxMoeda[ô] não está declarado. Ele pode ser inacessÃvel devido ao seu nÃvel de proteção.
o que estou fazendo de errado ai pessoal
é pessoal acho que sou eu que estou ficando burro mesmo, consegui, agradeço a todos pela força
Tópico encerrado , respostas não são mais permitidas