And*_*ker 49 c# checkedlistbox winforms
我有一个CheckedListBox,我想自动勾选其中的一个项目.
该CheckedItems集合不允许您向其添加内容.
有什么建议?
B. *_*non 21
这是您一次选择/勾选或取消选择/取消选中所有项目的方法:
private void SelectAllCheckBoxes(bool CheckThem) {
for (int i = 0; i <= (checkedListBox1.Items.Count - 1); i++) {
if (CheckThem)
{
checkedListBox1.SetItemCheckState(i, CheckState.Checked);
}
else
{
checkedListBox1.SetItemCheckState(i, CheckState.Unchecked);
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
在我的程序中,我使用了以下技巧:
CheckedListBox.SetItemChecked(CheckedListBox.Items.IndexOf(Item),true);
Run Code Online (Sandbox Code Playgroud)
事情是如何工作的:
SetItemChecked(int index,bool value)是在特定项目中设置精确检查状态的方法.您必须指定要检查的项目的索引(使用IndexOf方法,作为参数指定项目的文本)和选中状态(true表示项目已选中,false未选中).
此方法遍历CheckedListBox中的所有项,并检查(或取消选中)具有指定索引的项.
例如,我的一小段代码 - FOREACH循环运行指定的程序名称,如果程序包含在CheckedLitBox(CLB ...)中,则检查它:
string[] ProgramNames = sel_item.SubItems[2].Text.Split(';');
foreach (string Program in ProgramNames)
{
if (edit_mux.CLB_ContainedPrograms.Items.Contains(Program))
edit_mux.CLB_ContainedPrograms.SetItemChecked(edit_mux.CLB_ContainedPrograms.Items.IndexOf(Program), true);
}
Run Code Online (Sandbox Code Playgroud)
假设您想在单击按钮时检查该项目。
private void button1_Click(object sender, EventArgs e)
{
checkedListBox1.SetItemChecked(itemIndex, true);
}
Run Code Online (Sandbox Code Playgroud)
其中 itemIndex 是要检查的项的索引,从 0 开始。