jeudi 21 janvier 2021

TryParse IfStatment Causing No Return

It's a simple winform that converts weight into another unit, I have a optional box for the user to input the number of decimal places the conversion should do but the issue is if the user enter nothing in the decimal textbox and click the convert button (code below) then nothing happens and nothing is converted. I want there to be a default amount set such as 2. I know this is due to my if statement but I cannot think of a way to fix it and code in the default amount (I'm new trying to get back into the swings of coding and C# please be nice :) :

private void btnConvert_Click(object sender, EventArgs e)
    {
        string errorMessage = "Please do not enter two identical weight units";

        if (!double.TryParse(txtboxAmount.Text, out double amount) || !int.TryParse(decimelPlacetxtBox.Text, out int decimalPlaces)) return; // Prevents empty string, validation error, return halts the code
        {
            int decimalPlace = int.Parse(decimelPlacetxtBox.Text); // Needs to be here in order of operation
            double userInput = Convert.ToDouble(txtboxAmount.Text);


            // Fail safe

            if (comboBoxFrom.SelectedItem.ToString() == "ST" && comboBoxTo.SelectedItem.ToString() == "ST")
            {
                MessageBox.Show(errorMessage, "Error in converting", MessageBoxButtons.OK);
            }

            if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "LB")
            {
                MessageBox.Show(errorMessage, "Error in converting", MessageBoxButtons.OK);
            }

            if (comboBoxFrom.SelectedItem.ToString() == "KG" && comboBoxTo.SelectedItem.ToString() == "KG")
            {
                MessageBox.Show(errorMessage, "Error in converting", MessageBoxButtons.OK);
            }

            // Killogram convertion


            if (comboBoxFrom.SelectedItem.ToString() == "KG" && comboBoxTo.SelectedItem.ToString() == "LB")
            {
                double conver = userInput * 2.20462262185;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
                lblUnit.Text = "LB".ToString();
            }

            if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "KG")
            {
                double conver = userInput / 2.2046;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
                lblUnit.Text = "LG".ToString();
            }

            if (comboBoxFrom.SelectedItem.ToString() == "ST" && comboBoxTo.SelectedItem.ToString() == "KG")
            {
                double conver = userInput * 6.35;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
                lblUnit.Text = "KG".ToString();
            }

            // Pound convertion

            if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "ST")
            {
                double conver = userInput / 14;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
                lblUnit.Text = "ST".ToString();
            }

            if (comboBoxFrom.SelectedItem.ToString() == "ST" && comboBoxTo.SelectedItem.ToString() == "LB")
            {
                double conver = userInput / 14;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
                lblUnit.Text = "LB".ToString();
            }

            if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "KG")
            {
                double conver = userInput / 2.205;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
                lblUnit.Text = "KG".ToString();
            }

            {
                comboBoxFrom.SelectedItem = -1;
            }

            // Stone convertion

            if (comboBoxFrom.SelectedItem.ToString() == "ST" && comboBoxTo.SelectedItem.ToString() == "LB")
            {
                double conver = userInput * 14;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
                lblUnit.Text = "LB".ToString();
            }

            if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "ST")
            {
                double conver = userInput / 14;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
                lblUnit.Text = "ST".ToString();
            }

            if (comboBoxFrom.SelectedItem.ToString() == "LB" && comboBoxTo.SelectedItem.ToString() == "KG")
            {
                double conver = userInput / 2.205;
                txtBoxResult.Text = "Converted Amount : " + conver.ToString("N" + decimalPlace);
                lblUnit.Text = "KG".ToString();


            }

        }
    }

Aucun commentaire:

Enregistrer un commentaire