簡體   English   中英

為什么在我清除輸出標簽后這些值仍然相加?

[英]Why are the values still adding up after i clear the output label?

我不確定發生了什么。 我以為我已將其設置為最后清除輸出標簽。 每次我清除它時,程序仍然記得以前的數字並添加它。 老實說,我不知道發生了什么。

另外附帶說明,如何設置要在此方法中使用的單選按鈕?

第一次編碼課,所以我還是個初學者。

    private double oilandlube()
    {
        if (checkBox1.Checked == true)
        {
            Oil_change = 26;
        }
        if (checkBox2.Checked == true)
        {
            Lube_job = 18;
        }
        return Oil_change + Lube_job;
    }
    private void Oiltype ()
    {
        if (radioButton1.Checked)
        {
            Regular = 0;
        }
        if (radioButton2.Checked)
        {
            Mixed = 10;
        }
        else
        {
            Mixed = 0;
        }
        if (radioButton3.Checked)
        {
            Full_Synthetic = 18;
        }
        else
        {
            Full_Synthetic = 0;
        }
    }
    private void carwash()
    {
        if (radioButton4.Checked)
        {
            none = 0;
        }
        if (radioButton5.Checked)
        {
            complimentary = 0;
        }
        if (radioButton6.Checked)
        {
            Full_service = 6;
        }
        else
        {
            Full_service = 0;
        }
        if (radioButton7.Checked)
        {
            Premium = 9;
        }
        else
        {
            Premium = 0;
        }

    }
    private double flushes()
    {
        if (checkBox3.Checked == true)
        {
            Radiator_flush = 30;
        }

        if (checkBox4.Checked == true)
        {
            Transmission_flush = 80;
        }

        return Radiator_flush + Transmission_flush;
    }
    private double misc()
    {
        if (checkBox5.Checked == true)
        {
            inspection = 15;
        }

        if (checkBox6.Checked == true)
        {
            replace_muffler = 100;
        }

        if (checkBox7.Checked == true)
        {
            tire_rotation = 20;
        }
        return inspection + replace_muffler;
    }
    private double partsandlabor()
    {

       double.TryParse(textBox1.Text, out parts);
       double.TryParse(textBox2.Text, out labor);

       return parts + labor; 

    }

    private double tax()
    {
        return partsandlabor() * taxes;
    }



    private void summary()
    {
        service = oilandlube() + flushes() + misc();
        total_parts = partsandlabor();
        double total_tax = tax();
        double grand_total = service + total_parts + total_tax;

        label7.Text = service.ToString("c");
        label8.Text = total_parts.ToString("c");
        label9.Text = total_tax.ToString("c");
        label10.Text = grand_total.ToString("c");

    }


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

    private void button1_Click(object sender, EventArgs e)
    {
        oilandlube();
        carwash();
        flushes();
        misc();
        partsandlabor();
        summary();
    }
    private void ClearOilandlube()
    {
        checkBox1.Checked = false;
        checkBox2.Checked = false;
    }
    private void ClearMisc()
    {
        checkBox5.Checked = false;
        checkBox6.Checked = false;
        checkBox7.Checked = false;
    }
    private void ClearFlushes()
    {
        checkBox3.Checked = false;
        checkBox4.Checked = false;
    }

    private void ClearSummary()
    {
        label7.Text = "";
        label8.Text = "";
        label9.Text = "";
        label10.Text = "";
    }
    private void button2_Click(object sender, EventArgs e)
    {

        ClearOilandlube();
            ClearMisc();
            ClearFlushes();
            ClearSummary();



        radioButton1.Checked = false;
        radioButton2.Checked = false;
        radioButton3.Checked = false;
        radioButton4.Checked = false;
        radioButton5.Checked = false;
        radioButton6.Checked = false;
        radioButton7.Checked = false;
        textBox1.Text = "0";
        textBox2.Text = "0";

    }
}

}

當您清除控件的內容時,您還應該清除支持變量的值,這樣它們就不會保留以前的值。 您應該能夠在Clear方法中將它們設置回零。

例如,油和潤滑油可能如下所示:

private void ClearOilandlube()
{
    checkBox1.Checked = false;
    checkBox2.Checked = false;
    Oil_change = 0;
    Lube_job = 0;
    Mixed = 0;
    Regular = 0;
    Full_Synthetic = 0;
}

看起來您正在全局保存某些變量的狀態,以便您可以在其他地方訪問它們。

Mixed = 10;

您還必須將其重置為某個默認值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM