none
textbox que recebe vários valores e soma RRS feed

  • Pergunta

  • Preciso que uma textbox receba um numero e guarde em uma variável,   logo em seguida (automaticamente) ela tem que estar pronta pra receber outro numero... (e outro... até que atinja a quantidade de números que o usuário desejar) Para realizar uma soma.

    Alguém poderia me ajudar? 

    sexta-feira, 10 de outubro de 2014 04:42

Respostas

  • Bom dia Anna.

    Imaginamos uma calculadora.

    nomeTextBox.text += nomeVariavelValorDigitado

    No evento você pode implementar a conversão de string para int e somar.

    A disposição para qualquer dúvida.

    sexta-feira, 10 de outubro de 2014 12:18
  • seria +/ isso?

        Dim xVal As Integer
    
        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            If (Not Me.TextBox1.Text.Equals(String.Empty)) Then
                xVal += CDbl(Me.TextBox1.Text)
            End If
        End Sub


    Microsoft Technology Associate (MTA)

    sexta-feira, 10 de outubro de 2014 14:01

Todas as Respostas

  • Bom dia Anna,

    Você pode separar o conteúdo do TextBox por algum caractere e ir acrescentando na variável através de um FOR. Dessa maneira você conseguirá capturar todo o conteúdo do TextBox.

    Apenas como uma sugestão, acho melhor deixar o usuário adicionar dinamicamente a quantidade de TextBox que ele quiser, ficará visualmente melhor na organização dos números. Caso queira fazer assim, veja o link abaixo.

    http://smcode.com.br/CamposDinamicos.aspx

    Abs.


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    sexta-feira, 10 de outubro de 2014 10:49
  • Olá Anna,

    Você pode ir somando cada valor informado no Textbox em uma variável auxiliar se não quiser ir somando no próprio Textbox...

    Esta sua questão "automaticamente" dependerá de uma ação para que o sistema saiba quando a digitação do valor está finalizada. Lembre como funciona uma calculadora... ela somente soma o número que você informou após você pressionar a tecla = (igual) ou então informar a próxima operação... você teria que criar algum mecanismo de definição de conclusão de digitação no seu sistema... ou então somar no evento LostFocus do TextBox  que ocorre quando o mesmo perde o foco... mas tudo depende do objetivo do seu sistema....

    Att,


    Fabio Rosa.

    sexta-feira, 10 de outubro de 2014 11:00
  • Bom dia Anna.

    Imaginamos uma calculadora.

    nomeTextBox.text += nomeVariavelValorDigitado

    No evento você pode implementar a conversão de string para int e somar.

    A disposição para qualquer dúvida.

    sexta-feira, 10 de outubro de 2014 12:18
  • seria +/ isso?

        Dim xVal As Integer
    
        Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
            If (Not Me.TextBox1.Text.Equals(String.Empty)) Then
                xVal += CDbl(Me.TextBox1.Text)
            End If
        End Sub


    Microsoft Technology Associate (MTA)

    sexta-feira, 10 de outubro de 2014 14:01
  • Olá Fabio, como posso utilizar a variável auxiliar?
    sexta-feira, 10 de outubro de 2014 19:25
  • Boa tarde Bruno,

    Não consegui utilizar o For, vc poderia me dar um exemplo?

    Obrigada!

    sexta-feira, 10 de outubro de 2014 19:27
  • Olá Anna,

    Desculpe a demora ao responder.

    Primeiro você cria uma variável auxiliar no escopo de sua classe:

    Dim auxValor As Double

    No construtor de sua classe ou em um método que zere o valor você zera o valor da variável auxiliar:

    auxValor = 0

    Então no método que você definir para somar (que pode ser o evento de um botão), você soma na variável auxiliar o valor do TextBox e Zera o TextBox novamente, para que o usuário entre com o próximo valor. Ainda você pode apresentar o total parcial em um Label se quiser:


    Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If (Not Me.TextBox1.Text.Equals(String.Empty)) Then
            auxValor += CDbl(TextBox1.Text)
            TextBox1.Text = string.Empty
            Label.Caption = auxValor.ToString() 
        EndIf
    EndSub

    Então enquanto a variável auxiliar não for zerada você terá o valor da soma.

    É bem similar ao que o Eduardo postou abaixo, porém acho que não é uma boa ideia utilizar o método TextChanged porque este evento é disparado a cada caractere digitado no TextBox... então se o usuário quiser digitar 20, vai disparar o evento para o 2 e depois para o 0, somando apenas 2 e não 20.

    Att,


    Fabio Rosa.

    segunda-feira, 13 de outubro de 2014 17:36
  • Muito obrigada pela ajuda, mas acabei tendo que utilizar um comboBox... 
    domingo, 19 de outubro de 2014 22:57
  • eu tenho uma soluçao para as dores da tua mãe, eu aconselharia a tua mãe a não levar tanto no cu

    quarta-feira, 8 de maio de 2019 08:22