You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:36:05