C# 如何根据WinForm中的子复选框列表选择主复选框列表

C# 如何根据WinForm中的子复选框列表选择主复选框列表,c#,winforms,devexpress,checkboxlist,C#,Winforms,Devexpress,Checkboxlist,我有一个复选框列表,其中包含一些项目,如 一百 100.001 100.002 100.003 二百 200.001 200.002 200.003 这些项目之间有关系。父项为100和200 100.001、100.002和100.003是100岁的孩子。同样的,项目以200开头 假设所有项目都未选中,例如,当用户选择100.002时,我需要自动选择100的父项 没有循环的好方法是什么 这是我的密码 private void clb_SelectedIndexChanged(object

我有一个复选框列表,其中包含一些项目,如

  • 一百
  • 100.001
  • 100.002
  • 100.003
  • 二百
  • 200.001
  • 200.002
  • 200.003
这些项目之间有关系。父项为100和200

100.001、100.002和100.003是100岁的孩子。同样的,项目以200开头

假设所有项目都未选中,例如,当用户选择100.002时,我需要自动选择100的父项

没有循环的好方法是什么

这是我的密码

 private void clb_SelectedIndexChanged(object sender, EventArgs e)
 {
    int selected = clb.SelectedIndex;
    // I need to get the selected item's Text
    // then I have to split it with   
    // string s = item.Text.Split('.')

    clb.SetItemChecked(clb.FindStringExact(s[0]), true);
 }

上面的代码我几乎完成了,但是我无法获取最后一个选定项的文本

似乎您使用了错误的控件,鉴于您的数据是基于树的结构,您应该使用树状视图而不是复选框列表。这两者都为您的用户提供了一个更合理的UI,并使您在代码中更容易获取节点的“父节点”或给定节点的子节点。我猜您的
复选框列表
有一些
属性,您可以使用
项[selected]
,或者它应该有一些名为
SelectedItem
的属性。看起来它是一个
DevExpress
控件?但我需要用户选择/检查项目…它是DevExpresscontrol@ayilmaz所以,寻找我建议的属性,我以前使用过一些DevExpress控件,但这是很久以前的事了。