如果valuemember = something,则设置checkedListBox项

时间:2017-07-03 16:50:30

标签: c# winforms visual-studio checkedlistbox

我知道如何设置项目以进行检查:

checkedListBox.SetItemChecked(index, true);

但是当我打开带有int[] valueMembers参数的表单时,我正在调用它,所以我想检查每个值=要对此参数进行检查的值。这是我尝试过的:

    public NovaPoruka(int[] primalacID)
    {
        InitializeComponent();

        foreach(CheckedListBox o in checkedListBox1.Items)
        {
            if(primalacID.Contains(Convert.ToInt32(o.SelectedValue)))
            {
                o.SetItemChecked(o.SelectedIndex, true);
            }
        }
    }

编辑: 我没有看到我在执行此操作之前没有初始化checkedListBox所以它没有丢失错误但是现在我做了那个我在CheckedListBox o in checkedListBox1.Items丢了我的错误所以我做了一些改变但仍然做不知道如何获取foreach循环内的当前项的索引。这是更改的代码:

foreach(Int_String o in checkedListBox1.Items)
{
    if(primalacID.Contains(Convert.ToInt32(o._int)))
    {
            checkedListBox1.SetItemChecked(checkedListBox1.SelectedIndex, true);
    }
}

获取所选索引的当前方式会返回-1

1 个答案:

答案 0 :(得分:0)

我做到了。这是最终代码:

for(int i = 0; i < checkedListBox1.Items.Count; i++)
{
    Int_String s = checkedListBox1.Items[i] as Int_String;
    if(primalacID.Contains(s._int))
    {
        checkedListBox1.SetItemChecked(i, true);
    }
}