如何从 CheckedListBox 中获取当前选中的校验值?

How to I get the currently selected check value from CheckedListBox?

我有一个 CheckedListBox 控件,其中有 6 个复选框可供选择。我正在尝试检测以下内容:

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

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

还有一个:SelectedValueChanged。

我也不知道这是否能告诉我任何信息,因为函数是:

*_SelectedValueChanged(object sender, EventArgs e)

EventArgs 对于获取此必需信息有点无用。

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

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

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));

希望对您有所帮助:)