多选复选框选中金额累加并显示到文本框的实现问题
实现多复选框选中金额累加的解决方案
核心思路
你现有代码的问题是单个判断后直接赋值文本框,多个选中时后面的赋值会覆盖前面的结果。调整逻辑如下:
- 声明初始值为0的金额累加变量,推荐使用
decimal类型避免金额计算的精度误差 - 逐个判断所有复选框的选中状态,对应金额累加至总变量
- 最终将总金额格式化后赋值给展示文本框
可直接使用的代码示例
// 初始化总金额为0 decimal total = 0m; // 逐个匹配复选框对应金额,选中即累加 if (checkBox247Access.Checked) { total += 1.00m; } // 替换成你其余3个复选框的实际名称和对应金额即可 if (checkBoxPremium.Checked) { total += 20.00m; } if (checkBoxCustomSupport.Checked) { total += 5.00m; } if (checkBoxCloudBackup.Checked) { total += 15.00m; } // 格式化输出为美元格式保留两位小数 textBoxExtras.Text = total.ToString("$0.00");
补充配置
把上述计算逻辑放到所有复选框的CheckedChanged事件中,即可实现任意复选框选中/取消选中时,金额实时更新。
如果需要全不选时文本框显示为空而非$0.00,把最后一行赋值代码替换为:
textBoxExtras.Text = total == 0 ? "" : total.ToString("$0.00");
内容的提问来源于stack exchange,提问作者LJay
相关产品推荐
相关产品推荐

