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
相关产品推荐
相关产品推荐

