如何使用StringCollection填充(标记已选中)checkedListBox

时间:2012-12-13 02:06:52

标签: c# checkedlistbox

我的Windows窗体上有一个带有10个项目的checkedListBox。使用C#VS210。

我正在寻找一种简单的方法,通过使用存储在Settings.Settings文件中的值(存储为System.Collections.Specialized.StringCollection)来标记检查我的checkedListBox中的2个项目。我无法在那里找到这个例子,我知道我应该以某种方式使用CheckedListBox.CheckedItems属性,但还没有找到一个例子。

private void frmUserConfig_Load(object sender, EventArgs e)
{
    foreach (string item in Properties.Settings.Default.checkedListBoxSystem)
    {
        checkedListBoxSystem.SetItemCheckState(item, CheckState.Checked);
    }
}

2 个答案:

答案 0 :(得分:1)

如何使用Extension method

static class CheckedListBoxHelper
{
    public static void SetChecked(this CheckedListBox list, string value)
    {
        for (int i = 0; i < list.Items.Count; i++)
        {
            if (list.Items[i].Equals(value))
            {
                list.SetItemChecked(i, true);
                break;
            }
        }
    }
}

稍微更改load事件中的逻辑,如下所示:

private void frmUserConfig_Load(object sender, EventArgs e)
{
    foreach (string item in Properties.Settings.Default.checkedListBoxSystem)
    {
        checkedListBoxSystem.SetChecked(item);
    }
}

答案 1 :(得分:0)

SetItemCheckState的第一个参数采用索引(int)。尝试获取要检查的项目的索引,然后使用带有索引的SetItemCheckState进行检查。