none
como sumar 2 numero en un textbox RRS feed

Respuestas

  • ¿Te refieres a teclear en el textbox algo así como "3+6" y que al pulsar un botón se escriba "9"?

    Si es eso, en el click del botón mete algo de código que trocee el texto por el símbolo "+", convierta a número los dos fragmentos, y los sume. Por ejemplo, usando "Split":

    string texto = TextBox1.Text;
    string[] partes = texto.Split('+');
    int suma=0;
    foreach (string parte in partes)
    {
        suma+=int.Parse(parte.Trim());
    }
    TextBox1.Text = suma.ToString();

    La ventaja de ese código es que vale para sumar cualquier número de sumandos, por ejemplo, puedes teclear 1+2+3+4+5 y te devolverá la suma total de todos.

    viernes, 16 de noviembre de 2012 20:44
    Moderador
  • Hola !!!

      Podrias utilizar un codigo así:

    int suma = 0;
            private void textBox_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == '+')
                {
                    e.Handled = true;
                    suma += int.Parse(textBox.Text);
                    textBox.Clear();
                }
                if (Convert.ToInt32(e.KeyChar) == Convert.ToInt32(Keys.Enter))
                {
                    suma += int.Parse(textBox.Text);
                   textBox.Text= suma.ToString();
                   suma = 0;
                }
            }


      S A L U D O S !          msico.gif (40541 bytes)

       R L J

       "No olvides marcar como respuesta la mejor opción ó votar como util si te fue de ayuda"

    viernes, 16 de noviembre de 2012 22:31

Todas las respuestas

  • ¿Tiene los dos números en el mismo textbox?  Si es así, ¿qué los separa?

    Jose R. MCP
    Code Samples

    viernes, 16 de noviembre de 2012 1:21
    Moderador
  • ¿Te refieres a teclear en el textbox algo así como "3+6" y que al pulsar un botón se escriba "9"?

    Si es eso, en el click del botón mete algo de código que trocee el texto por el símbolo "+", convierta a número los dos fragmentos, y los sume. Por ejemplo, usando "Split":

    string texto = TextBox1.Text;
    string[] partes = texto.Split('+');
    int suma=0;
    foreach (string parte in partes)
    {
        suma+=int.Parse(parte.Trim());
    }
    TextBox1.Text = suma.ToString();

    La ventaja de ese código es que vale para sumar cualquier número de sumandos, por ejemplo, puedes teclear 1+2+3+4+5 y te devolverá la suma total de todos.

    viernes, 16 de noviembre de 2012 20:44
    Moderador
  • Hola !!!

      Podrias utilizar un codigo así:

    int suma = 0;
            private void textBox_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == '+')
                {
                    e.Handled = true;
                    suma += int.Parse(textBox.Text);
                    textBox.Clear();
                }
                if (Convert.ToInt32(e.KeyChar) == Convert.ToInt32(Keys.Enter))
                {
                    suma += int.Parse(textBox.Text);
                   textBox.Text= suma.ToString();
                   suma = 0;
                }
            }


      S A L U D O S !          msico.gif (40541 bytes)

       R L J

       "No olvides marcar como respuesta la mejor opción ó votar como util si te fue de ayuda"

    viernes, 16 de noviembre de 2012 22:31
  • al momento de cambiar el codigo para resta no me resta

    por ejemplo 20-10=-30

    se suman y da negativo y lo que quiero es restarlos

    jueves, 15 de febrero de 2018 2:42
  • al momento de cambiar el codigo para resta no me resta

    por ejemplo 20-10=-30

    se suman y da negativo y lo que quiero es restarlos

    intenta con algo asi

    
    
     string Numeros = TextBox1.Text;
                string[] valores;
                if (Numeros.Contains("/"))
                {
                    valores = Numeros.Split('/');
                    Numeros = (decimal.Parse(valores[0]) / decimal.Parse(valores[1])).ToString();
                }
                else if (Numeros.Contains("+"))
                {
                    valores = Numeros.Split('+');
                    Numeros = (int.Parse(valores[0]) + int.Parse(valores[1])).ToString();
                }
                else if (Numeros.Contains("-"))
                {
                    valores = Numeros.Split('-');
                    Numeros = (int.Parse(valores[0]) - int.Parse(valores[1])).ToString();
                }
                else if (Numeros.Contains("*"))
                {
                    valores = Numeros.Split('*');
                    Numeros = (int.Parse(valores[0]) / int.Parse(valores[1])).ToString();
                }
                else
                    Numeros = "Error";
    
    TextBox1.Text = Numeros;
    o algo asi
    string Numeros = TextBox1.Text;
                string[] signos = { "-", "+", "/", "*" }, valores;
    
                foreach (var item in signos)
                {
                    valores = Numeros.Split(Char.Parse(item));
                    switch (item)
                    {
                        case "/": Numeros = (decimal.Parse(valores[0]) / decimal.Parse(valores[1])).ToString();
                            break;
                        case "-": Numeros = (int.Parse(valores[0]) - int.Parse(valores[1])).ToString();
                            break;
    case "+": Numeros = (int.Parse(valores[0]) + int.Parse(valores[1])).ToString();
                            break;
    case "*": Numeros = (int.Parse(valores[0]) * int.Parse(valores[1])).ToString();
    
                        default: Numeros = "Error";
                            break;
                    }
                }
    
    TextBox1.Text = Numeros;

     



    Att. Franklin Andino




    jueves, 15 de febrero de 2018 3:38
  • Buenas,

    Como parece ser que necesitas utilizar varias expresiones matemáticas diferentes, porque no evalúas utilizar un "motor" de evaluación matemática?

    Te dejo un enlace a un motor simple basado en el motor JScript de .Net

    Evaluador de expresiones matemáticas

    Échale un ojo, porque creo que puede ser sencillo de implementar y solucionar toda tu casuistica

    Nos comentas el resultado

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:

    jueves, 15 de febrero de 2018 8:44
  • Buenas, disculpa se podria poner un if antes de ese codigo que compartiste?

    miércoles, 16 de octubre de 2019 1:38