我正在创建一个表单,允许用户从汽车服务的一组复选框中进行 Select .在表单中,用户从定价服务列表中进行 Select ,并根据 Select 的内容计算最终总数.

所选服务加在一起的逻辑是 放置在返回总计的方法中.

photo of form.

一旦用户点击计算按钮,所有 Select 的价格将被相加,并通过总费用标签显示.

    public partial class Automotive_Shop : Form
    {
        const int salesTax = (6 / 100);
        // prices for services
        const int
            oilChange = 26,
            lubeJob = 18,
            radiatorFlush = 30,
            transissionFlush = 80,
            inspection = 15,
            mufflerReplacement = 100,
            tireRotation = 20;

        int total = 0;

        public Automotive_Shop()
        {
            InitializeComponent();
        }




        private int OilLubeCharges()
        {
            if (oilChangeCheckBox.Checked == true)
            {
                total += oilChange;
            }                 
            if (lubeJobCheckBox.Checked == true)
            {
                total += lubeJob;
            }
          
            return total;
        }
           
      

      


        private void calculateButton_Click(object sender, EventArgs e)
        {
            totalFeesOutput.Text = OilLubeCharges().ToString("C");
                
        }

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

总数只能相加一次.

例如: 如果 Select 了"换油"复选框, 那么总数应该是26美元.

如果 Select 了"润滑剂作业(job)"复选框, 那么总共应该是18美元.

如果两个复选框都选中, 那么总数应该是44美元.

最终发生的情况是,在选中第一个复选框并点击计算按钮后, "总"变量值还在继续增加.

因此,如果我 Select "换油",然后点击计算,我会得到26美元. 如果我取消 Select 它并 Select "润滑剂作业(job)",总数不等于18美元,而是44美元.

推荐答案

要解决此问题,需要在计算之前将TOTAL变量重置为0.

Calculate按钮单击事件应该更新为如下所示:

private void calculateButton_Click(object sender, EventArgs e)
{
    total = 0;
    totalFeesOutput.Text = OilLubeCharges().ToString("C");
}

Csharp相关问答推荐

子组件:如何根据另一个组件的状态启用输入

使用特定格式的JsonConvert序列化对象

ITypeLib2.GetLibStatistics()在C#中总是抛出AccessViolationException

Mongo作为.NET中Testcontainers的副本集

如何在实体框架中添加包含列表?

Rx.Net窗口内部可观测数据提前完成

C#阻塞调用或await calling inside calling方法

用C#从Word文档中删除重复的节控件和文本内容控件

Docker Container中的HttpRequest后地址不可用

如何让NLog停止写入冗余信息?

如何在C#中转换泛型包装类内部的派生类

正在try 从Blazor中的API读取JSON

使用C#和.NET 7.0无法访问Cookie中的数据

我找不到ASP.NET Web应用程序(.NET框架).已 Select .NET框架项目和项模板以及此组件(&Q;)

使用ASP.NET MVC for Lemon Squeezy X-Signature创建散列

如何在特定时间间隔运行多个后台任务?

ASP.NET Core 8 Web API:如何添加版本控制?

Xamarin.Forms项目中缺少MainPage.xaml

将两个JSON文件与覆盖值的主文件合并

如何为RichTextBox中的特定文本上色?