2

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

2 に答える 2

1

拡張メソッドを使用するのはどうですか?

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);
    }
}
于 2012-12-13T05:08:05.637 に答える
0

の最初のパラメーターはSetItemCheckStateインデックス (int) を取ります。チェックしたい項目のインデックスを取得して、そのSetItemCheckStateインデックスを使用してチェックします。

于 2012-12-13T03:16:09.063 に答える