C# Winforms 分组单选框复选框求和计算功能实现代码咨询
健身房会员计费表单Calculate按钮点击事件实现代码
首先建议你先把控件修改为语义化的命名,避免使用默认的radioButton1这类无意义名称,后续维护更方便,参考命名如下:
- 会员类型单选框:
rdo_Basic(基础会员)、rdo_Normal(普通会员)、rdo_Elite(精英会员) - 支付频率单选框:
rdo_Weekly(按周支付)、rdo_Monthly(按月支付)、rdo_Quarterly(按3个月支付) - 附加服务复选框:
chk_Videos(健身教程视频)、chk_Trainer(私人教练) - 结果展示文本框:
txt_TotalAmount
以下是完整的点击事件处理代码,默认按照1个月=4周、3个月=12周的通用简化规则计算,你可以根据需求调整周期换算逻辑:
private void btn_Calculate_Click(object sender, EventArgs e) { // 初始化参数 decimal weeklyBaseFee = 0; decimal weeklyExtraFee = 0; int payCycleWeeks = 0; // 计算周基础会员费 if (rdo_Basic.Checked) weeklyBaseFee = 10; else if (rdo_Normal.Checked) weeklyBaseFee = 15; else if (rdo_Elite.Checked) weeklyBaseFee = 20; // 计算周附加服务费 if (chk_Videos.Checked) weeklyExtraFee += 2; if (chk_Trainer.Checked) weeklyExtraFee += 50; // 匹配支付周期对应的周数 if (rdo_Weekly.Checked) payCycleWeeks = 1; else if (rdo_Monthly.Checked) payCycleWeeks = 4; else if (rdo_Quarterly.Checked) payCycleWeeks = 12; // 计算总费用并格式化输出,保留两位小数 decimal total = (weeklyBaseFee + weeklyExtraFee) * payCycleWeeks; txt_TotalAmount.Text = $"${total:F2}"; }
如果需要增加异常校验,避免用户未选必填选项导致计算错误,可以在代码开头补充校验逻辑:
// 校验是否选择会员类型 if (!rdo_Basic.Checked && !rdo_Normal.Checked && !rdo_Elite.Checked) { MessageBox.Show("请先选择会员类型"); return; } // 校验是否选择支付频率 if (!rdo_Weekly.Checked && !rdo_Monthly.Checked && !rdo_Quarterly.Checked) { MessageBox.Show("请先选择支付频率"); return; }
内容的提问来源于stack exchange,提问作者Simon Hankins
相关产品推荐
相关产品推荐

