【问题标题】:How to select and deselect all items in a listbox using radio buttons in C#如何使用 C# 中的单选按钮选择和取消选择列表框中的所有项目
【发布时间】:2009-06-22 11:46:20
【问题描述】:

我想选择列表框中的所有项目。这里我使用 listbox1.selectAll() 来选择所有项目。对于取消选择列表框中的所有项目,我使用 listbox1.selecteditems.clear()。那是完美的工作

现在我想进行验证,例如,如果我使用 listbox1.selectAll() 选择所有项目,然后如果我在列表框中选择一个项目,则所有选定项目选择都将关闭,并且单选按钮仍显示 selectall 已选中。但是我没有在列表框中选择所有项目。怎么做。任何建议请。

【问题讨论】:

  • 与 WPF 的联系在哪里?
  • 目前还不清楚 RadioButton 的位置以及您想要使用它们的目的。单选按钮是否在 ListBoxItems 上?这如何导致全选?您能否阐明您对这些 RadioButtons 的意图?

标签: c# wpf listbox


【解决方案1】:

我建议使用单个CheckBox 或两个标准Buttons 而不是RadioButtons。

如果选择了部分但不是全部或未选择任何项目,您会检查哪个RadioButton?有一个“选定的”RadioButton 是没有意义的。

使用按钮,您只需在按下按钮时选择/取消选择所有项目。

使用单个CheckBox,您可以使用三态功能设置CheckBox,如下所示:选中=全部选中;第三个状态 = 一些被选中;未选中 = 未选中。

在CheckBox 上处理适当的Checked 和Unchecked 处理程序以更新ListBox,并响应ListBox.SelectionChanged 事件以更新CheckBox 以响应手动选择更改。

【讨论】:

  • 我明白了。我正在使用按钮而不是 RadioButtons。感谢您的解决方案。
  • 单选按钮旨在允许在列表中进行 0 或 1 个选择。复选框允许 0:number 选择列表。
【解决方案2】:

您可以在 ListBox1_SelectedIndexChanged 事件中实施检查以检查复选框,即

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
     myCheckBox.Checked = listBox1.SelectedItems.Count > 1;
}

【讨论】:

  • 对于单选按钮我应该使用什么。我想对具有单选按钮的列表框项进行验证。如果我使用 selectall 选择所有项目,那么如果我选择一个列表框项目,则选择将关闭。如何应对这种行为。
  • 抱歉,它应该是单选按钮的相同属性,即 myRadioButton.Checked。
  • 这当然是假设您选择了“全选”单选按钮,然后您选择了列表中的特定项目(其他项目被取消选择)。如果您将上述代码放在 SelectedItemChanged 事件中,那么每当索引更改时,它将检查您是否选择了多个项目并相应地设置单选按钮的选中状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
  • 2020-03-26
  • 2015-11-04
  • 2023-04-06
相关资源
最近更新 更多