[ Foro de C# ]

Duda con programa con interfaz gráfica.

10-Sep-2014 00:22
Invitado (wind)
3 Respuestas

Saludos.

He creado un pequeño programa (Con interfaz gráfica) .
Busco implementar lo siguiente:

Si el usuario ingresa un número menor a 0, entonces debería aparecer un mensaje: "Ingrese un número mayor que cero"

Y estaba pensando, de que forma implementarlo dentro de un Catch ...
Adjunto código fuente:


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);
                
                
                resultado = primernumero * segundonumero;
                textBox3.Text = resultado.ToString();

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

        }
    }
}




11-Sep-2014 15:34
Nacho Cabanes (+83)

Podrías "inventarte un nuevo tipo de excepción" y lanzarla con "throw", pero no es algo muy razonable para un programa tan simple.

Otra alternativa ligeramente mejor sería usar un "entero sin signo" en vez de un "entero", para que la propia conversión sea la que haga saltar la excepción.

La alternativa más simple es no complicar tanto la situación y usar un "if" (o realmente o "while") que muestre el MessageBox si el valor no es aceptable.


23-Sep-2014 19:48
Invitado (wind)

Decidí usar el if, he hecho varias correcciones, sin embargo me falta algo.

En mi programa...
Cuando los textbox están vacíos, debe aparecer el siguiente mensaje: "Ingrese los datos solicitados" ¿Cómo puedo hacer eso en Visual Studio? Supongo que debe existir varias formas.

Saludos!


28-Sep-2014 12:39
Nacho Cabanes (+83)

Efectivamente, hay varias formas.

Una simple es esperar a que se pulse el botón de confirmación, para entonces validar los campos y avisar si alguno no es correcto.

Otra alternativa más rápida pero también más intrusiva es usar el evento "Leave" (método OnLeave) de cada TextBox para comprobar si es válido en el mismo momento en el que se abandona cada textbox, no al final.

Para reglas sencillas, también puedes optar por usar un MaskedTextBox en vez de un TextBox.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)