C# 如何将所选项目返回到checkedListBox中
我已选中名为的ListBox,它已加载到页面以显示名称而不是ID: 此信息存储在C# 如何将所选项目返回到checkedListBox中,c#,.net,winforms,checkedlistbox,checklistbox,C#,.net,Winforms,Checkedlistbox,Checklistbox,我已选中名为的ListBox,它已加载到页面以显示名称而不是ID: 此信息存储在dbo.CHIPSET public void loadCategory() { CLB_CONTROLLER.DataSource = catg.getCategories(); CLB_CONTROLLER.DisplayMember = "CHIPSET"; CLB_CONTROLLER.ValueMember = "CHIPSET_ID"; } 然后我将数据作为字符串插入数据库。此信
dbo.CHIPSET
public void loadCategory()
{
CLB_CONTROLLER.DataSource = catg.getCategories();
CLB_CONTROLLER.DisplayMember = "CHIPSET";
CLB_CONTROLLER.ValueMember = "CHIPSET_ID";
}
然后我将数据作为字符串插入数据库。此信息存储在dbo.MYDB
//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]);
}
}
任何帮助都将不胜感激。假设您已将
a、b、c、d、e、f
作为项目文本填写在检查列表框中
然后,您可以通过以下方式基于逗号分隔的列表设置选中项:
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);
}
var itemsToSelect=“a,c,d”;
var items=itemsToSelect.Split(',');
对于(变量i=0;i
您还可以通过以下方式获取逗号分隔字符串中的选中项:
var selectedItems = string.Join(",",
checkedListBox1.CheckedItems.Cast<object>()
.Select(x => checkedListBox1.GetItemText(x)));
var selectedItems=string.Join(“,”,
checkedListBox1.CheckedItems.Cast()
.Select(x=>checkedListBox1.GetItemText(x));
如果以逗号分隔的字符串存储项的文本,ValueMember
的用法是什么?根据用户在dataGrid
视图上的选择,这些项将不断添加到checkedListBox1
,而这正是我想要的。我要说的是,因为假设用户错误地选择了错误的芯片组,并且想要更新选择,使用上面提出的方法,他们将无法做到这一点,因为完整的列表将不可用。我希望他们能够看到完整的列表,就像上面我的图片所示,但同时,当他们从dataGrid
中选择某些内容时,会检查相应的项目。在我的代码中,a、b、c、d、e、f就是完整的列表。例如,如果我创建了新的,比如说checkedListBox1
,我可以用上面的代码实现我想要的,我不需要从数据库中填充列表,而是手动将项目添加到checkedListBox1
。那么我上面的代码就可以工作了。但是我正在尝试重用我已经有的CLB\u控制器
复选框。您可以使用任何逻辑填充CheckedListBox
。示例代码完全独立于您填写CheckedListBox
的方式。它只接受逗号分隔的列表,并在CheckedListBox
中选择它们。它还可以将CheckedItems
转换回逗号分隔的字符串。您的用户应该能够在所有项目之间进行选择。另外,CheckedListBox
应该能够根据单元格中以逗号分隔的列表显示选中的项目。此外,您还应该能够将选中的项目作为逗号分隔的列表放回。示例代码与项目列表无关,它假定您已用项目填充了CheckedListBox
。我相信,这正是你想要的
var selectedItems = string.Join(",",
checkedListBox1.CheckedItems.Cast<object>()
.Select(x => checkedListBox1.GetItemText(x)));