Foros del Web » Programación para mayores de 30 ;) » .NET »

Multiplicar dos textbox en C#

Estas en el tema de Multiplicar dos textbox en C# en el foro de .NET en Foros del Web. Saludos, Estoy recién comenzando en la programación orientada a objetos, y decidí crear un programa que multiplica dos textbox. Mi programa es imperfecto, y pensando ...
  #1 (permalink)  
Antiguo 12/09/2014, 12:26
 
Fecha de Ingreso: junio-2014
Mensajes: 6
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Multiplicar dos textbox en C#

Saludos,

Estoy recién comenzando en la programación orientada a objetos, y decidí crear un programa que multiplica dos textbox. Mi programa es imperfecto, y pensando en el futuro, ¿Qué lineas adicionales de código debo agregar de tal manera que en el textbox 1 y textbox 2 no se puedan ingresar números menores o iguales a 7? El if es una alternativa, pero en los programas en consola, para estos casos usaba el while. Y lamentablemente no soy capaz de implementar el while en un programa orientado a objetos. (Ver segundo Code)


Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Multiplicación
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            int primernumero;
            int segundonumero;
            int resultado;

            try
            {
                primernumero = int.Parse(textBox1.Text);

                segundonumero = int.Parse(textBox2.Text);

                if ((segundonumero <= 7) || (primernumero <= 7))
                {

                    MessageBox.Show("Ingrese un número mayor que siete", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    textBox1.Clear();
                    textBox2.Clear();         
                }
         

                resultado = primernumero * segundonumero;
                textBox3.Text = resultado.ToString();




            }
            catch (FormatException)
            {
                MessageBox.Show("Ingrese sólo números", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                
            }

        }
    }
}

Usando el while (Mensaje infinito de error)

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Multiplicación
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            int primernumero;
            int segundonumero;
            int resultado;

            try
            {
                primernumero = int.Parse(textBox1.Text);

                segundonumero = int.Parse(textBox2.Text);

                while ((segundonumero <= 7) || (primernumero <= 7))
                {
                    segundonumero = int.Parse(textBox1.Text);
                    MessageBox.Show("Ingrese un número mayor que 7", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                }


         

                resultado = primernumero * segundonumero;
                textBox3.Text = resultado.ToString();




            }
            catch (FormatException)
            {
                MessageBox.Show("Ingrese sólo números mayores a 7", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                
            }

        }
    }
}
  #2 (permalink)  
Antiguo 12/09/2014, 14:32
 
Fecha de Ingreso: septiembre-2014
Ubicación: Peru-Lima-Chorrillos
Mensajes: 17
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Multiplicar dos textbox en C#

Sinceramente lo veo bien tu código, no se a donde quieres llegar o quizás especifica bien tu consulta.

Saludos cordiales,

Ronald León Madrid.
  #3 (permalink)  
Antiguo 15/09/2014, 16:28
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 18 años, 11 meses
Puntos: 16
Respuesta: Multiplicar dos textbox en C#

Buenas compañero,

Antes de nada, lee un poco esto: http://es.wikipedia.org/wiki/Bucle_while
Es un bucle, si nunca cambias el valor de textBox1 ni textBox2, no vas a salir en la vida del While...
Es un... Mientras esto se cumpla, hago.... Y resulta, que la condición que has puesto se cumple hasta que finalices la ejecución a mano.

El while, funciona como has puesto, pero sólo en consola y con un código distinto que hace que se pare la ejecución para que introduzcas un texto... Pero en entorno web o de escritorio, eso "peta".

Te recomiendo que antes de continuar, te asegures bien el uso de las estructuras de control del flujo.
Es decir... If, else, elseif, while, for, for each, Do ... while, switch
Aquí puedes encontrar algo:
http://msdn.microsoft.com/es-es/libr...(v=vs.90).aspx
http://juvega.wordpress.com/estructuras-de-control/


Espero haberte ayudado,
Un saludo!!!!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #4 (permalink)  
Antiguo 23/09/2014, 07:31
 
Fecha de Ingreso: junio-2014
Mensajes: 6
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Multiplicar dos textbox en C#

Gracias por ambas respuestas. Ahora tengo las cosas más claras.

He perfeccionado el programa, he pensado en usar if para otros programas que he creado. Creo que el if es la mejor opción.

Para finalizar, me gustaría saber, como lo puedo hacer, en caso de que un usuario deje en blanco todos los textbox, y después presione el botón "calcular".
Creo que se debe usar un catch, de tal manera que aparezca un mensaje "Ingrese los datos solicitados"
De ser así, ¿Cuál catch debe ir primero?
  #5 (permalink)  
Antiguo 23/09/2014, 08:03
Avatar de Drako_18  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 18 años, 11 meses
Puntos: 16
Respuesta: Multiplicar dos textbox en C#

Buenas compañero,

Yo antes que un try catch, usaría un if..
Si usas VB.Net sería algo como esto:
dim MENSAJE as string = String.Empty

if String.IsNullOrWhiteSpace(textBox1.Text) then
MENSAJE = "Debe rellenar el campo textBox1."
end if

if String.IsNullOrWhiteSpace(textBox2.Text) then
MENSAJE = "Debe rellenar el campo textBox2."
end if

Si quieres que aparezcan los 2 mensajes en caso de dejar ambos vacíos, deberás concatenarlos con &



Un saludo!!!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)
  #6 (permalink)  
Antiguo 23/09/2014, 09:32
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Multiplicar dos textbox en C#

Hola que tal, bueno en C# lo puedes hacer asi:

Código C#:
Ver original
  1. if ( string.IsNullOrEmpty(sTexto1) )
  2. {
  3.   MessageBox.Show("Mensaje de error...");
  4. }
  5. else
  6. {
  7.   ....
  8. }

El try y catch, yo mas bien los pondria por si el usuario intenta poner alguna letra en vez de un número y evitar que el programa truene. Esto también lo puedes validar en el KeyPress.

Recomendaciones, en las capturas NUNCA las pongas en ciclos, no tiene sentido

Fuera de eso tu codigo se ve bien y entendible, ahora cambialo un poco y crea una pequeña calculadora. Si puedes subelo a GitHub y le podemos dar un ojo y ver que se le puede mejorar
__________________
Your Code as a Crime Scene...
  #7 (permalink)  
Antiguo 23/09/2014, 09:44
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Multiplicar dos textbox en C#

Yo quizás antes que usar un "String.IsNullOrEmpty" o similares, haría algo más sencillo como mirar la longitud del texto. En cuanto al try/catch, usando un TryParse quizás quede más bonito.
__________________
Aviso: No se resuelven dudas por MP!

Etiquetas: multiplicar, textbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:27.