如何从CheckedListBox获取当前选中的检查值?

时间:2017-08-27 05:50:12

标签: c# checkedlistbox

我有一个带有6个复选框的CheckedListBox控件可供选择。我试图检测以下内容:

用户检查第三个索引并将值从未选中更改为已选中。 内部:调用事件 - 获取第三个索引的选中值。

这似乎建议添加一个SelectedIndexChanged事件。这并没有告诉我用户改变了价值。

还有另一个:SelectedValueChanged。

我不知道这是否告诉我任何事情,因为函数是:

*_SelectedValueChanged(object sender, EventArgs e)

EventArgs对于获取所需信息毫无用处。

同样,我只需要获取用户刚刚选择的项目的选中值。我对收集所有选定的项目不感兴趣。只选择当前的一个。感谢。

1 个答案:

答案 0 :(得分:1)

为了获得所选项目的显示值(内容),您可以使用以下内容:

Console.WriteLine(checkedListBox1.Items[checkedListBox1.SelectedIndex].ToStr‌​ing());

或更短的版本:

Console.WriteLine(checkedListBox1.SelectedItem.ToString());

要确定是否选中了所选项目,您可以使用以下内容:

Console.WriteLine(checkedListBox1.CheckedItems.Contains(checkedListBox1.SelectedItem));

这将检查是否可以在选中的项目中找到所选项目的内容。如果CheckedListBox有重复项,那可能会导致错误的结果。为避免这种情况,您可以检查索引而不是值,如下所示:

Console.WriteLine(checkedListBox1.CheckedIndices.Contains(checkedListBox1.SelectedIndex));

编辑:我刚发现的更好的解决方案是使用GetItemChecked方法。像下面这样的东西可以完美地运作:

Console.WriteLine(checkedListBox1.GetItemChecked(checkedListBox1.SelectedIndex));

希望有所帮助:)