Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to use EXIT button without interference from LEAVE event
Message
General information
Forum:
ASP.NET
Category:
Other
Title:
How to use EXIT button without interference from LEAVE event
Environment versions
Environment:
C# 1.1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Miscellaneous
Thread ID:
01053590
Message ID:
01053590
Views:
58
I am trying to figure out how to un-paint myself from a corner where I thought I did some good coding. Admittedly, I am a beginner at coding in C#, although I made a somewhat dubious attempt in 2003 to learn this language. This time around, it doesn't seem so foreign to me any more, however,... I still get stuck from time to time (all the time)...

I am trying to exit without the basePriceTextBox's LEAVE event's code executing (it is number one in TAB order). If the cursor is on that textbox and I want to EXIT, that event is going to fire.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace CarCareCenter
{
    public partial class CarCareForm : Form
    {
        private const decimal
            decStereoSystem = 425.76M,
            decLeatherInterior = 987.41M,
            decComputerNavigation = 1741.23M,
            decStandardFinish = 0M,
            decPearlizeFinish = 345.72M,
            decCustomizedDetailing = 599.99M,
            decTaxRate = 0.08M;
         
        private decimal decTradeInAllowance = 0, decSubTotal = 0, 
            decSalesTax = 0, decAmountDue = 0, decAccessoriesTotal = 0;
        
        public CarCareForm()
        {
            InitializeComponent();
        }

        private void CarCareForm_Load(object sender, EventArgs e)
        {

        }

        private void exitButton_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void clearButton_Click(object sender, EventArgs e)
        {
            this.accessoriesLabel.Text = "";
            this.salesTaxLabel.Text = "";
            this.basePriceTextBox.Text = "";
            this.tradeInAllowanceTextBox.Text = "";
            this.stereoCheckBox.Checked = false;
            this.leatherInteriorCheckBox.Checked = false;
            this.computerNavigationCheckBox.Checked = false;
            this.subTotalLabel.Text = "";
            this.amountDueLabel.Text = "";
            //Clear variables.
            decSubTotal = 0;
            decAccessoriesTotal = 0;
            decAmountDue = 0;
            decSalesTax = 0;
            decTradeInAllowance = 0;
            disableControls();
            //Put the focus on the first text box.
            this.basePriceTextBox.Focus();
        }

        private void calculateButton_Click(object sender, EventArgs e)
        {
            string strMessageString="";

            //Calculate the cost of the vehicle.
            if (this.basePriceTextBox.Text != "")
            {
                //Convert from Text to Decimal value.
                decSubTotal = decimal.Parse(this.basePriceTextBox.Text);
                // Types of Interiors using check boxes. See which ones were checked.
                if (this.stereoCheckBox.Checked)
                {
                    decAccessoriesTotal += decStereoSystem;
                }
                if (this.leatherInteriorCheckBox.Checked)
                {
                    decAccessoriesTotal += decLeatherInterior;
                }
                if (this.computerNavigationCheckBox.Checked)
                {
                    decAccessoriesTotal += decComputerNavigation;
                }
                decSubTotal += decAccessoriesTotal;

                //Types of Finishes. See which Radio Button is checked.
                if (this.standardFinishRadioButton.Checked)
                {
                    decSubTotal += decStandardFinish;
                }
                else if (this.pearlizedFinishRadioButton.Checked)
                {
                    decSubTotal += decPearlizeFinish;
                }
                else if (this.customizedDetailingRadioButton.Checked)
                {
                    decSubTotal += decCustomizedDetailing;
                }
                // Determine the taxes prior to deducting the trade-in value.
                decSalesTax = (decSubTotal * decTaxRate);
                //Add the sales tax to the subTotal variable.
                decSubTotal += decSalesTax;
                
                //See if the Buyer has a trade-in. Enter the value.
                if (this.tradeInAllowanceTextBox.Text != "")
                {
                    decTradeInAllowance =
                        decimal.Parse(this.tradeInAllowanceTextBox.Text);
                    decAmountDue = (decSubTotal - decTradeInAllowance);
                }
                //In the case that there is no value in the Trade-In Allowance textbox.
                else
                {
                    decAmountDue += decSubTotal;
                }

                //Now, display the results in the Labels.
                this.accessoriesLabel.Text = decAccessoriesTotal.ToString("C");
                this.salesTaxLabel.Text = decSalesTax.ToString("C");
                this.subTotalLabel.Text = decSubTotal.ToString("C");
                this.amountDueLabel.Text = decAmountDue.ToString("C");
                this.calculateButton.Enabled = false;
            }
        }

        private void basePriceTextBox_Leave(object sender, EventArgs e)
        {
            string strMessageForBasePrice="";
            try
            {
                if (decimal.Parse(this.basePriceTextBox.Text) >= 1)
                {
                    enableControls();
                    this.tradeInAllowanceTextBox.Focus();
                }
                if (decimal.Parse(this.basePriceTextBox.Text) < 1)
                {
                    disableControls();
                }
            }
            catch (FormatException err)
            {
                strMessageForBasePrice = 
                    "Non-numeric value was entered for Base Price";
                MessageBox.Show(strMessageForBasePrice + ". " + err.Message, 
                    "Data Entry Error", 
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        //Rather than repeat the below code several times, I decided to create a method.
        private void disableControls()
        {
            this.stereoCheckBox.Enabled = false;
            this.leatherInteriorCheckBox.Enabled = false;
            this.computerNavigationCheckBox.Enabled = false;
            this.standardFinishRadioButton.Enabled = false;
            this.pearlizedFinishRadioButton.Enabled = false;
            this.customizedDetailingRadioButton.Enabled = false;
            this.tradeInAllowanceTextBox.Enabled = false;
            this.calculateButton.Enabled = false;
        }
        
        private void enableControls()
        {
            this.stereoCheckBox.Enabled = true;
            this.leatherInteriorCheckBox.Enabled = true;
            this.computerNavigationCheckBox.Enabled = true;
            this.standardFinishRadioButton.Enabled = true;
            this.pearlizedFinishRadioButton.Enabled = true;
            this.customizedDetailingRadioButton.Enabled = true;
            this.tradeInAllowanceTextBox.Enabled = true;
            this.calculateButton.Enabled = true;
        }
    }
}
Next
Reply
Map
View

Click here to load this message in the networking platform