如何根据下拉框选中值设置结果框内生成的数字数量
解决方案
你可以通过获取下拉框选中的数值,调整循环的终止条件来实现需求,以下是具体改造方案:
提前确认你的下拉框控件(假设ID为DropDownList1)已经配置好代表生成数量的可选值,若需要选中下拉框后立即触发生成逻辑,可将控件的AutoPostBack属性设为true。
场景1:以下拉框指定的生成数量优先,忽略结束值输入
从起始值开始连续生成下拉框指定数量的数字,代码如下:
// 先校验输入合法性 if (!string.IsNullOrEmpty(TextBox1.Text) && !string.IsNullOrEmpty(DropDownList1.SelectedValue) && double.TryParse(TextBox1.Text, out double startNum) && int.TryParse(DropDownList1.SelectedValue, out int generateCount)) { string totalListNumber = ""; double currentNum = startNum; for (int i = 0; i < generateCount; i++) { totalListNumber += currentNum + "\n"; currentNum++; } TextBox3.Text = totalListNumber; }
场景2:同时兼容结束值限制
如果下拉框指定的生成数量对应的最大值超过了结束值,就生成到结束值为止,避免超出预期范围:
if (!string.IsNullOrEmpty(TextBox1.Text) && !string.IsNullOrEmpty(TextBox2.Text) && !string.IsNullOrEmpty(DropDownList1.SelectedValue) && double.TryParse(TextBox1.Text, out double startNum) && double.TryParse(TextBox2.Text, out double endNum) && int.TryParse(DropDownList1.SelectedValue, out int generateCount)) { // 校验起始值不能大于结束值 if (startNum > endNum) { TextBox3.Text = "起始值不能大于结束值"; return; } string totalListNumber = ""; double currentNum = startNum; int actualCount = 0; while (currentNum <= endNum && actualCount < generateCount) { totalListNumber += currentNum + "\n"; currentNum++; actualCount++; } TextBox3.Text = totalListNumber; }
注意:代码中使用
TryParse做类型转换校验,可以避免用户输入非数字内容时程序抛出异常,比原代码直接用Convert.ToDouble的稳定性更好。
内容的提问来源于stack exchange,提问作者John Wick
相关产品推荐
相关产品推荐

