首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将选定的项返回到checkedListBox中

如何将选定的项返回到checkedListBox中
EN

Stack Overflow用户
提问于 2018-06-04 16:28:44
回答 1查看 62关注 0票数 1

我有一个名为checkedListBox的控制器,它被加载到页面中以显示名称而不是ID:此信息存储在dbo.CHIPSET

代码语言:javascript
复制
public void loadCategory()
{
    CLB_CONTROLLER.DataSource = catg.getCategories();
    CLB_CONTROLLER.DisplayMember = "CHIPSET";
    CLB_CONTROLLER.ValueMember = "CHIPSET_ID";
}

然后我会将数据作为字符串插入到DB中。此信息存储在dbo.MYDB中。

代码语言:javascript
复制
//LOOP THROUGH CONTROLLER CHECKED ITEMS TO INSERT ALL SELECTED
string chip = "";
for (int i = 0; i < CLB_CONTROLLER.CheckedItems.Count; i++)
{
    if (chip == "")
    {
        chip = CLB_CONTROLLER.GetItemText(CLB_CONTROLLER.CheckedItems[i]);
    }
    else
    {
        chip += ", " + CLB_CONTROLLER.GetItemText(CLB_CONTROLLER.CheckedItems[i]);
    }
}

到目前为止还不错的…现在我要创建更新功能…当用户从DataGrid中选择单元格时,我希望自动填充页面上的所有textboxesCheckBoxes等。因此,我试图弄清楚如何使用上面提到的CLB_CONTROLLER来实现这一点。更新正在查看dbo.MYDB和列2 CHIPSET,它现在是一个字符串(与上面的代码一起插入)。下面有下面的代码,但是当我单击DataGrid时,CLB_CONTROLLER内部什么也不会发生

代码语言:javascript
复制
//CHECK IF CONTROLLER CONTAINES CONTENT, THEN SELLECT APPROPRIATE CHECK BOX
string con = DGV_AOC.CurrentRow.Cells[2].Value.ToString();
string[] convalues = con.Split(',');
for (int i = 0; i < convalues.Length; i++)
{
    convalues[i] = convalues[i].Trim();
}

for (int i = 0; i < CLB_CONTROLLER.Items.Count; i++)
{
    CLB_CONTROLLER.SetItemChecked(i, false);//First uncheck the old value!
    for (int x = 0; x < convalues.Length; x++)
    {
        if (CLB_CONTROLLER.Items[i].ToString() == convalues[x].ToString())
        {
            //Check only if they match! 
            CLB_CONTROLLER.SetItemChecked(i, true);
        }
    }
}

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-04 16:47:38

假设您已经在CheckedListBox中填充了a,b,c,d,e,f,例如,作为项目文本。

然后,可以根据逗号分隔列表设置选中的项:

代码语言:javascript
复制
var itemsToSelect = "a,c,d";
var items = itemsToSelect.Split(',');
for (var i = 0; i < checkedListBox1.Items.Count; i++)
{
    var b = items.Contains(checkedListBox1.GetItemText(checkedListBox1.Items[i]));
    checkedListBox1.SetItemChecked(i, b);
}

此外,您还可以以逗号分隔的字符串获得检查项:

代码语言:javascript
复制
var selectedItems = string.Join(",",
    checkedListBox1.CheckedItems.Cast<object>()
        .Select(x => checkedListBox1.GetItemText(x)));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50685005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档