我有一个带有6个复选框的CheckedListBox控件可供选择。我试图检测以下内容:
用户检查第三个索引并将值从未选中更改为已选中。 内部:调用事件 - 获取第三个索引的选中值。
这似乎建议添加一个SelectedIndexChanged事件。这并没有告诉我用户改变了价值。
还有另一个:SelectedValueChanged。
我不知道这是否告诉我任何事情,因为函数是:
*_SelectedValueChanged(object sender, EventArgs e)
EventArgs对于获取所需信息毫无用处。
同样,我只需要获取用户刚刚选择的项目的选中值。我对收集所有选定的项目不感兴趣。只选择当前的一个。感谢。
答案 0 :(得分:1)
为了获得所选项目的显示值(内容),您可以使用以下内容:
Console.WriteLine(checkedListBox1.Items[checkedListBox1.SelectedIndex].ToString());
或更短的版本:
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));
希望有所帮助:)