CheckedListBox选择所有项目 - Windows Forms C#

4

我有一个复选框,当选中时会选中 CheckedListBox 中的所有项目。 当复选框取消选中时,应取消选中列表中的所有项目。

代码:

 if (checkBoxCheckAllPrivileges.Checked)
   for (int i = 0; i < checkedListBoxUsersWhoSee.Items.Count; i++)
      checkedListBoxUsersWhoSee.SetItemChecked(i, true);
 else
   for (int i = 0; i < listBoxUsers.Items.Count; i++)
    checkedListBoxUsersWhoSee.SetItemChecked(i, false);

这段代码有问题吗?
如果将参数设置为false,.SetitemChecked会起作用吗?

还有其他取消选中项的方法吗?


1
你有什么问题? - currarpickt
代码在 checkBoxCheckAllPrivileges_CheckedChanged 中。 事件处理程序中没有更多的代码,调试器可以完美地执行代码。 - walkman
1
дҢ еЏҮд»ӨйЂљиү‡з”ЁforеңҒзҺҮе’ЊcheckedListBoxUsersWhoSee.SetItemChecked(i, checkBoxCheckAllPrivileges.Checked);ж›үжҚұif/elseиҮ­еЏӨжқӨж”№иү›з®—жі•гЂ‚ - Aimnox
如果您创建一个名为SetItemsChecked(bool)的扩展方法,它将更具可重用性。 - Reza Aghaei
2个回答

4
您在循环的else部分中给出了错误的项。
if (checkBoxCheckAllPrivileges.Checked)
    for (int i = 0; i < checkedListBoxUsersWhoSee.Items.Count; i++)
        checkedListBoxUsersWhoSee.SetItemChecked(i, true);
else
    for (int i = 0; i < checkedListBoxUsersWhoSee.Items.Count; i++)
        checkedListBoxUsersWhoSee.SetItemChecked(i, false);

sowjanya attaluri 哈哈,谢谢,我已经为这个错误奋斗了一个小时了...长夜漫漫,感谢你的敏锐眼光。 - walkman
1
你可以使用checkListBoxUsersWhoSee.SetItemChecked(i, checkBoxCheckAllPrivileges.Checked);来避免if语句。 - LarsTech

-1

也使用JavaScript

$(document).ready(function () {

  $("#<%=checkBoxCheckAllPrivileges.ClientID%>").click(function () {

if ($(this).is(":checked"))

 {

  $("#<%=checkedListBoxUsersWhoSee.ClientID%> input[type=checkbox]").prop("checked", true);

  }

 else

 {


$("#<%=checkedListBoxUsersWhoSee.ClientID%> input[type=checkbox]").prop("checked", false);


 }


 });

这是WinForms,如何使用JavaScript实现? - Eldho
不可以直接实现,但你可以编写/使用一个已有的框架来为你处理此事,并将其绑定到你的用户界面或其他内容。我以前用过http://jurassic.codeplex.com/,它被证明是非常有效的。 - Ab aravind
请参考Eldho的文章.....http://www.codeproject.com/Tips/127356/Calling-JavaScript-function-from-WinForms-and-vice - Ab aravind
当然它可能运行,但我认为使用另一个库来做这件事不值得。 - Eldho
代码项目与您的侏罗纪框架不同,它使用WebBrowser组件来显示网页。 - Eldho
请参考最后一个链接Eldho。 - Ab aravind

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接