您可以使用下面的代码,它选择的项目,这与你的字符串开始的索引,然后在它们之间迭代,并设置所选项目:
memlist.ClearSelected(); // clear previous selection
memlist.Items.Cast<object>()
.Select((item, index) => new { Text = memlist.GetItemText(item), Index = index })
.Where(x => x.Text.StartsWith(term, StringComparison.CurrentCultureIgnoreCase))
.ToList()
.ForEach(x => memlist.SetSelected(x.Index, true));
BTW不要忘记设置列表框的SelectMode
到多选。
您也可以选择在foreach循环项目:
var indexesToSelect = memlist.Items.Cast<object>()
.Select((item, index) => new { Text = memlist.GetItemText(item), Index = index })
.Where(x => x.Text.StartsWith(term, StringComparison.CurrentCultureIgnoreCase))
.Select(x => x.Index);
foreach(int index in indexesToSelect)
memlist.SetSelected(index, true);
你应该通过'Items'物业自己只是想迭代。 http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.items.aspx – Matthew