0

我们在 Visual Studio 2017 中有 ac# Winforms 项目。加载表单时,它会使用设置中的值填充复选框控件。

默认情况下,复选框内的所有项目都未选中。

稍后使用另一个按钮,我们会得到一个用逗号分隔的字符串,例如 (apple,oranges,kiwies)

我们想要做的是如果该项目存在于复选框中,与我们得到的字符串相比,然后使其被选中。

任何人都可以帮忙吗?

4

1 回答 1

1

SetItemCheckState您可以使用该方法通过使用内部项目的索引来检查 checkListBox的项目checkListBox.Items。您可以使用返回与字符串匹配的项目的索引的方法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);
    }
}
于 2018-04-28T10:20:55.113 回答