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

C# ListBox中查找指定字符串并选中该条目及上方条目

WinForms ListBox 选中目标条目及其上方条目实现方案

首先要确保ListBox支持多选:

  • 在设计器中选中listBox1,在属性窗口找到SelectionMode,设置为MultiSimple或MultiExtended;
  • 也可以在代码中初始化时设置:
    private void Form_Load(object sender, EventArgs e)
    {
        listBox1.SelectionMode = SelectionMode.MultiSimple;
    }
    

接下来修改按钮点击事件的代码,实现查找并选中目标条目及其上方条目:

private void button13_Click(object sender, EventArgs e)
{
    // 清空已有选中项
    listBox1.ClearSelected();

    // 遍历所有条目索引,定位目标内容
    for (int i = 0; i < listBox1.Items.Count; i++)
    {
        if (listBox1.Items[i].ToString().Contains("M8 M3"))
        {
            // 选中当前匹配条目
            listBox1.SetSelected(i, true);
            
            // 若当前条目不是第一个,选中其上方条目
            if (i > 0)
            {
                listBox1.SetSelected(i - 1, true);
            }

            // 仅需第一个匹配项则保留break;若要所有匹配项及其上方,删除break
            break;
        }
    }
}

关键说明

  • 使用SetSelected方法实现多选,替代原代码中仅能设置单个选中项的SelectedItem;
  • 增加索引越界判断i > 0,避免选中不存在的条目;
  • 保留break会只处理第一个匹配项,删除则会遍历所有条目,选中所有包含"M8 M3"的条目及其上方条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:43:14