Как заполнить (отметить галочкой) checkedListBox с помощью StringCollection


У меня есть checkedListBox с 10 элементами в моей коллекции на моей форме windows. Использование C# VS210.

Я ищу простой способ отметить как проверенные только 2 элемента из моего checkedListBox, используя значения, сохраненные в настройках.Файл параметров (хранящихся в системе.Коллекции.Специализированный.Stringcollection доступным). Я не смог найти этот пример там, я знаю, что я должен использовать CheckedListBox.Как-то проверил свойство CheckedItems, но не нашел примера.

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

2 ответа:

Как насчет использования метода расширения ?

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;
            }
        }
    }
}

И слегка измените логику в событии загрузки, например:

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

Первый параметр SetItemCheckState принимает индекс (int). Попробуйте получить индекс элемента, который вы хотите проверить, а затем используйте SetItemCheckState с индексом, чтобы проверить его.