C#/ WinForms:设置包含字符串/数组数据的CheckedListBox项

时间:2010-11-09 03:19:59

标签: c# arrays textbox contains checkedlistbox

有没有办法确定我的checkedlistbox的项目是否包含来自字符串/数组的数据?

我的文本框包含以下内容:

txtActivities.Text = "ABC, DEF";

我的checklistbox(包含以下内容)

  • ABC
  • DEF
  • GHI
  • JKL

我想做的是: (1)将“活动”拆分为数组:

string[] tokens = txtActivities.ToString().Split(',');

和(2)尝试根据我的文本框“检查”我的checkboxlist(cListActivities)中找到的项目

for (int i = 0; i < frm.clistActivities.Items.Count; i++){

if (frm.clistActivities.Items[i].ToString().Contains(tokens)) //error?
    {
    frm.clistActivities.SetItemChecked(i); // not working
    }}

输出:应检查项目ABC和DEF。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您需要检查令牌是否包含该项目,然后将SetItemChecked设置为true

换句话说,

if (Array.IndexOf(tokens, frm.clistActivities.Items[i].ToString() >= 0)
     frm.clistActivities.SetItemChecked(i, true);

答案 1 :(得分:1)

逗号和D之间有空格。

试试这个:

"ABC,DEF"

编辑:这段代码对我有用。

  foreach(string strMyString in tokens)
            {   
             this.clistActivites.SetItemChecked(clistActivities.FindStringExact(strMyString), true);
            }