2017-04-19 4 views
0

何が起こっているのか分かりません。私は最後に出力ラベルをクリアするように設定したと思った。私はそれをクリアするたびに、プログラムはまだ前の番号を覚えてそれに追加します。私は正直に何が起こっているのか分かりません。なぜ出力ラベルをクリアした後も値が積算されていますか?

また、このメソッドで使用するラジオボタンを設定するにはどうすればいいですか?

最初のコーディングクラスなので、まだ初心者です。

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"; 

    } 
} 

}

答えて

1

あなたがコントロールの内容を消去するとき、あなたはまた、バッキング変数の値をクリアする必要がありますので、彼らは、以前の値を保持しません。 Clearメソッドでゼロに戻すことができます。

例えば、油や潤滑油は、次のようになります。あなたが他の場所でそれらにアクセスできるように、世界的にいくつかのあなたの変数の状態を保持しているように見えます

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

ありがとうございます、今はうまくいくようです。 –

0

Mixed = 10; 

また、デフォルト値にリセットする必要があります。

+0

ラジオボタン用です。これまで使用してきたすべての値は0に設定されています。 –

+0

私は助けてくれてありがとう。 –

関連する問題