以下是我将 CheckBoxes 动态添加到 CheckBoxList 的代码:
foreach (WCore.CategoryFields cat in Global.getCategories())
{
CheckBox c = new CheckBox();
c.Text = cat.CategoryId;
c.Tag = cat.CategoryName;
if (ints != null)
{
if (ints.Contains(c.Tag))
Invoke(new Action(()=>checkedListBox1.Items.Add(c, true)));
else
Invoke(new Action(()=>checkedListBox1.Items.Add(c, false)));
}
else
Invoke(new Action(()=>checkedListBox1.Items.Add(c, false)));
}
问题是,每当我运行此代码时,都会添加复选框,但不会添加文本。像这样:
我试图调试它,然后我发现 CheckBox 实例'c'正在获取文本但没有显示它。
看这里:
请告诉我这段代码出了什么问题?
更新
请注意,我不能这样使用它:
Invoke(new Action(()=>checkedListBox1.Controls.Add(c)));
因为它更好地使用面板而不是 CheckBoxList 。我还想要两个值,一个显示为文本,另一个隐藏为 CheckBoxList 中每个 CheckBox 的值
更新 2
获取所选项目的代码:
List<string> SelInts = new List<string>();
foreach (ListBoxItem c in checkedListBox1.SelectedItems)
{
SelInts.Add(c.Tag.ToString());
}