C# 如果valuemember=something,则将checkedListBox项设置为选中状态

C# 如果valuemember=something,则将checkedListBox项设置为选中状态,c#,winforms,visual-studio,checkedlistbox,C#,Winforms,Visual Studio,Checkedlistbox,我知道如何将项目设置为选中: checkedListBox.SetItemChecked(index, true); 但是当我打开带有参数int[]valueMembers的表单时,我会调用它,所以我想检查每个与此参数相关的值成员。以下是我尝试过的: public NovaPoruka(int[] primalacID) { InitializeComponent(); foreach(CheckedListBox o in checkedLi

我知道如何将项目设置为选中:

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
,所以它不是在删除错误,但现在当我在checkedListBox1.Items中的
checkedListBox o处删除错误,所以我做了一些更改,但仍然不知道如何获取foreach循环中当前项的索引。以下是更改代码:

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

当前获取所选索引的方法返回我
-1

我已经完成了。以下是最终代码:

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);
    }
}
for(int i=0;i
和?有什么问题?你忘了解释为什么这个代码不起作用了吗?它就是不起作用。它不会检查它,也不会删除任何错误。我已经做了一些编辑,所以你可以更容易地使用普通的。。。循环,并且您的索引是for iteration中使用的变量。您刚刚完成了它,并且正在回答。无论如何,谢谢你:)