Jump to content
williamjda

Somar textbox com Mascara no formato em R$

Recommended Posts

williamjda

Amigos tenho uma duvida. Tenho a seguinte mascas para converter em reais que funciona corretamente o problema esta quando vou somar os valores das textbox. Ele somo apenas os valores da esquerda antes do ponto o restante não então quando vou somar 1.100,00 + 10,00 o resultado que aparece é 11,1 por que ele so pega o valor que esta antes do ponto. Alugem poderia me ajudar.

OBS: A mascara funciona corretamente o problema é somar os valores.

Segue codigo da mascara:

Public Class EntradaCompraVendas
'Classe publica para tranformar o campo no formato moeda.
Public Class Utils
	''' <summary>
	''' Método que formata para moeda o conteúdo de um TextBox
	''' </summary>
	''' <param name="txt">Controle a ser formatado</param>
	''' <remarks></remarks>
	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
End Class

Private Sub EntradaCompraVendasBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EntradaCompraVendasBindingNavigatorSaveItem.Click
	Me.Validate()
	Me.EntradaCompraVendasBindingSource.EndEdit()
	Me.TableAdapterManager.UpdateAll(Me.BD_dadosDataSet)
End Sub
Private Sub EntradaCompraVendas_Load_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
	'TODO: This line of code loads data into the 'BD_dadosDataSet.EntradaCompraVendas' table. You can move, or remove it, as needed.
	Me.EntradaCompraVendasTableAdapter.Fill(Me.BD_dadosDataSet.EntradaCompraVendas)
End Sub
Private Sub CompraTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CompraTextBox.TextChanged
	'Chama a classe publica da mascara moeda.
	Utils.TextBoxMoeda(CompraTextBox)
End Sub
Private Sub VendasTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VendasTextBox.TextChanged
	'Chama a classe publica da mascara moeda.
	Utils.TextBoxMoeda(VendasTextBox)
End Sub
Private Sub TotalTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TotalTextBox.TextChanged
	'Chama a classe publica da mascara moeda.
	'Utils.TextBoxMoeda(TotalTextBox)
End Sub
Private Sub BT_gravar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_gravar.Click
	'Se o botão gravar for pressionado ele faz com que seja somado os valores do campo dizimo e Venda
	If BT_gravar.TabIndex Then
		TotalTextBox.Text = Val(CompraTextBox.Text) + Val(VendasTextBox.Text)
				End If
	Me.Validate()
	Me.EntradaCompraVendasBindingSource.EndEdit()
	Me.TableAdapterManager.UpdateAll(Me.BD_dadosDataSet)
End Sub
 End Class

Edited by williamjda

Share this post


Link to post
Share on other sites
pt_V1p3r

Bem apenas li na diagonal o teu codigo e algo me saltou logo à vista, se estas a trabalhar com moedas nao uses o double, usa sim decimal.

Depois já te tento ajudar mais...

Share this post


Link to post
Share on other sites
williamjda

Amigo desculpa a demora pois não estava a trabalhar por esses dias. Vou verificar e respondo. Obrigado.

Edited by williamjda

Share this post


Link to post
Share on other sites
Carlos Pais

Eu tenho um troque que ás vezes resulta, é pegar no valor da textbox e multiplicalo por 1, o que obriga a tranformar o valor em numeros

TotalTextBox.Text = (CompraTextBox.Text*1) + (VendasTextBox.Text*1)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.