如何无需if-else结构实现单选按钮根据购鞋数量自动选中?
解决方案
先明确折扣规则逻辑,优化原有代码的同时添加RadioButton自动勾选功能:
修改后的完整代码
private void button1_Click(object sender, EventArgs e) { // 处理输入合法性,避免非数字输入报错 if (!decimal.TryParse(textBox1.Text, out decimal schoenen1)) { label3.Text = "请输入有效数字"; // 清空所有RadioButton勾选状态 radioButton0Percent.Checked = false; radioButton15Percent.Checked = false; radioButton25Percent.Checked = false; return; } decimal prijs1 = schoenen1 * 100; decimal prijs2 = schoenen1 * 85; decimal prijs3 = schoenen1 * 75; // 重置所有RadioButton勾选状态 radioButton0Percent.Checked = false; radioButton15Percent.Checked = false; radioButton25Percent.Checked = false; if (schoenen1 > 5) { label3.Text = prijs3.ToString(); radioButton25Percent.Checked = true; // 勾选25%折扣按钮 } else if (schoenen1 >= 2) // 合并2-5双的判断逻辑 { label3.Text = prijs2.ToString(); radioButton15Percent.Checked = true; // 勾选15%折扣按钮 } else if (schoenen1 == 1) { label3.Text = prijs1.ToString(); radioButton0Percent.Checked = true; // 勾选0%折扣按钮 } else { label3.Text = "请输入大于0的数量"; } }
关键说明
- RadioButton勾选语法:通过设置控件的
Checked属性为true即可完成勾选,比如radioButton25Percent.Checked = true;。如果按钮属于同一组(放在同一个GroupBox/Panel中),设置其中一个为true时,同组其他按钮会自动取消勾选,无需手动设置。 - 代码优化:把原有独立
if改为else if结构,避免重复执行判断;添加输入合法性校验,防止非数字输入导致程序崩溃;合并2双及以上到5双的判断条件,简化逻辑。
内容的提问来源于stack exchange,提问作者Stefan N
相关产品推荐
相关产品推荐

