¿Cómo puedo hacer que un botón de reset en mi C# Windows forms?

Estoy tratando de hacer un botón de reset de mi C# Windows forms. Pero, cuando tengo claro los cuadros de texto con un código como este:

        textBox1.Clear();
        textBox2.Clear();
        textBox3.Clear();
        textBox4.Clear();
        textBox5.Clear();
        textBox6.Clear();

entonces, me da el siguiente error: «la cadena de Entrada no tiene el formato correcto»

Aquí está mi código:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text; 
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections;

namespace MidTermPizzas
{
    public partial class Form1 : Form
    {
        pizzaOrder aOrder = new pizzaOrder();

        public Form1()
        {
            InitializeComponent();
        }

        private void formTitle_Click(object sender, EventArgs e)
        {

        }

        //click File, Exit
        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Enjoy your pizza!");
            this.Close();
        }

        //click View, Summary of Orders Placed
        private void summaryOfOrdersToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SummaryOfOrdersPlaced myForm = new SummaryOfOrdersPlaced();
            myForm.Show();
        }


        //amount of Pizzas label
        private void label1_Click(object sender, EventArgs e)
        {

        }

        //form load
        private void Form1_Load(object sender, EventArgs e)
        {

        }

        //sales tax label
        private void label3_Click(object sender, EventArgs e)
        {

        }

        //text in box to the right of "Amount of Pizzas"
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            aOrder.numberOfPizzas = int.Parse(textBox1.Text);
        }

        //text in box to the right of "Amount of Cokes"
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            aOrder.numberOfCokes = int.Parse(textBox2.Text);
        }

        //text in box to the right of "Sales Tax"
        private void textBox4_TextChanged(object sender, EventArgs e)
        {

        }

        //File Tool Strip Menu
        private void fileToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        //amount of cokes label
        private void label2_Click(object sender, EventArgs e)
        {

        }

        //reset button
        private void button1_Click_1(object sender, EventArgs e)
        {
            //textBox1.Clear();
            //textBox2.Clear();
            //textBox3.Clear();
            //textBox4.Clear();
            //textBox5.Clear();
            //textBox6.Clear();
         }

        //text in box to the right of "Amount Due"
        private void textBox3_TextChanged_1(object sender, EventArgs e)
        {

        }

        //text in box to the right of "Amount Paid"
        private void textBox5_TextChanged(object sender, EventArgs e)
        {
            aOrder.getAmountPaid = double.Parse(textBox5.Text);
        }

        //click Calculate Change Due button
        private void calculateChangeDue_Click(object sender, EventArgs e)
        {
            textBox6.Text = Convert.ToString(aOrder.GetChangeDue());
        }

        //text in box to right of Change Due
        private void textBox6_TextChanged(object sender, EventArgs e)
        {

        }

        //amount due label
        private void label4_Click(object sender, EventArgs e)
        {

        }

        //amount paid label
        private void label5_Click(object sender, EventArgs e)
        {

        }

        //change due label
        private void label6_Click(object sender, EventArgs e)
        {

        }

        //click Calculate Amount Due
        private void calculateAmountDue_Click(object sender, EventArgs e)
        {
            textBox3.Text = Convert.ToString(aOrder.GetAmountDue());
        }

        //click Calculate Sales Tax
        private void button2_Click(object sender, EventArgs e)
        {
            textBox4.Text = Convert.ToString(aOrder.TaxDue());
        }


    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;

namespace MidTermPizzas
{
    class pizzaOrder
    {
        public int numberOfCokes
        {
            get;

            set;
        }

        public int numberOfPizzas
        {
            get;

            set;
        }

        public double InputOrder()
        {
            const double COKE_PRICE = 1.49;
            const double PIZZA_PRICE = 7.99;
            double inputOrder = (numberOfCokes * COKE_PRICE) + (numberOfPizzas * PIZZA_PRICE);
            return inputOrder;
        }

        public double TaxDue()
        {
            const double TAX = .073;
            double taxDue = (this.InputOrder() * TAX);
            return taxDue;
        }

        public double GetAmountDue()
        {
            double getAmountDue = this.InputOrder() + this.TaxDue();
            return getAmountDue;
        }

        public double getAmountPaid
        { get; set; }

        public double GetChangeDue()
        {
            double getChangeDue = this.getAmountPaid - this.GetAmountDue();
            return getChangeDue;
        }
    }
}
  • No llame doble.Parse() en un evento TextChanged controlador. Uso TryParse() y comprobar una cadena vacía.
  • ajenos a su pregunta, pero usted debe deshacerse de todos los no implementadas _Click métodos. Estos se añaden al hacer doble clic en un elemento en el diseñador.
InformationsquelleAutor me123 | 2013-11-02

2 Kommentare

  1. 1
    private void textBox1_TextChanged(object sender, EventArgs e){
      aOrder.numberOfPizzas = textBox1.Text == "" ? 0 : int.Parse(textBox1.Text);
    }

    Hacer lo mismo con otros cuadros de texto, usted debe utilizar TryParse y también el uso de 1 TextChanged controlador de eventos para todos los cuadros de texto.

    El código siguiente utiliza TryParse y supongo que si el análisis de falla, el valor predeterminado será 0:

    private void textBox1_TextChanged(object sender, EventArgs e){
      int v;
      if(int.TryParse(textBox1.Text, out v)){
        aOrder.numberOfPizzas = v;
      } else aOrder.numberOfPizzas = 0;
    }
  2. 0

    Utilizar TryParse como sugiere otras respuestas o colocar 0 en los cuadros de texto se utiliza para la entrada numérica en el método clear. Otro enfoque es el uso de MaskedTextBox para los cuadros de texto se utiliza para la entrada numérica.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Recent Articles

Python «set» con duplicados/elementos repetidos

Hay una forma estándar de representar un "conjunto" que puede contener elementos duplicados. Como yo lo entiendo, un conjunto tiene exactamente un cero o...

Python: generador de expresión vs rendimiento

En Python, ¿hay alguna diferencia entre la creación de un generador de objetos a través de un generador de expresión versus el uso de...

Cómo exportar/importar la Masilla lista de sesiones?

Hay una manera de hacer esto? O tengo que tomar manualmente cada archivo de Registro? InformationsquelleAutor s.webbandit | 2012-10-23

no distingue mayúsculas de minúsculas coincidentes en xpath?

Por ejemplo, para el xml a continuación <CATALOG> <CD title="Empire Burlesque"/> <CD title="empire burlesque"/> <CD...