我们在Visual Studio 2017中有一个c#Winforms项目。 加载表单时,它会使用设置中的值填充checklistbox控件。
默认情况下,核对表列表中的所有项目均未选中。
稍后使用另一个按钮,我们会得到一个以逗号分隔的字符串(例如,apple,oranges,kiwies)
我们想要做的是,如果项目中的项目存在于我们获得的字符串中,那么它将被检查。
任何人都可以帮忙吗?
答案 0 :(得分:1)
您可以使用SetItemCheckState
内的项目索引,使用checkListBox.Items
方法检查checkListBox的项目。
您可以使用checkListBox.Items
方法检查IndexOf
中是否存在字符串,该方法返回与字符串匹配的项的索引。
如果checkListBox.Items
包含字符串,则会选中所需的复选框,否则IndexOf
将返回-1
并且不会进行任何检查。这是一个例子:
private void button1_Click(object sender, EventArgs e)
{
string fruit = "apple, oranges, kiwies";
string[] fruitArr = fruit.Split(',').Select(x=>x.Trim()).ToArray();
int index = 0;
foreach (var item in fruitArr)
{
index = checkedListBox1.Items.Cast<string>().ToList().IndexOf(item);
if (index > -1)
{
checkedListBox1.SetItemCheckState(index, CheckState.Checked);
}
}
}
填充checkListBox
:
private void Form1_Load(object sender, EventArgs e)
{
List<string> fruitList = new List<string>() { "pineapple","banana","apple","oranges" };
foreach (var fruit in fruitList)
{
checkedListBox1.Items.Add(fruit);
}
}