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

C#中如何通过点击ListBox选项,用for循环显示对应数字范围

实现两个ListBox的联动逻辑(C# WinForms)

没问题,这个需求实现起来很直观,咱们用WinForms来举例,核心就是利用SelectedIndexChanged事件配合for循环完成范围填充:

第一步:初始化第一个ListBox

首先得把1到14的数字先放进第一个ListBox里,你可以在窗体加载事件里完成这一步:

private void Form1_Load(object sender, EventArgs e)
{
    // 给第一个ListBox(假设叫listBox_Days)添加1-14的选项
    for (int i = 1; i <= 14; i++)
    {
        listBox_Days.Items.Add(i.ToString());
    }
}

第二步:处理第一个ListBox的点击事件

接下来给第一个ListBox绑定SelectedIndexChanged事件,当用户选中某个选项时,触发逻辑填充第二个ListBox(假设叫listBox_Range):

private void listBox_Days_SelectedIndexChanged(object sender, EventArgs e)
{
    // 先清空第二个ListBox,避免重复添加
    listBox_Range.Items.Clear();

    // 判断是否有选中项,防止空引用
    if (listBox_Days.SelectedItem == null)
        return;

    // 将选中的项转换为整数,用TryParse避免转换失败报错
    if (int.TryParse(listBox_Days.SelectedItem.ToString(), out int selectedDay))
    {
        // 核心逻辑:用for循环生成1到selectedDay的范围,添加到第二个ListBox
        for (int i = 1; i <= selectedDay; i++)
        {
            listBox_Range.Items.Add(i.ToString());
        }
    }
}

关键逻辑说明

  • 每次触发事件先清空第二个ListBox,确保新内容不会和旧内容混在一起;
  • 用int.TryParse做类型转换更安全,能避免意外情况导致的程序崩溃;
  • for循环的起始值设为1,终止条件用i <= selectedDay,这样就能完整覆盖从1到选中数字的所有整数——比如选中7的话,循环会执行7次,依次把1、2……7添加到第二个ListBox里。

如果是WPF环境,ListBox的项操作方式略有不同,但核心的for循环逻辑是完全一致的哦。

内容的提问来源于stack exchange,提问作者Sang Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:00:08