如何从 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].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));
希望对您有所帮助:)
我有一个 CheckedListBox 控件,其中有 6 个复选框可供选择。我正在尝试检测以下内容:
用户检查第三个索引并将值从未检查更改为检查。 内部:调用事件 - 获取第三个索引的检查值。
这似乎建议添加一个 SelectedIndexChanged 事件。那并没有告诉我用户更改了值。
还有一个:SelectedValueChanged。
我也不知道这是否能告诉我任何信息,因为函数是:
*_SelectedValueChanged(object sender, EventArgs e)
EventArgs 对于获取此必需信息有点无用。
同样,我只需要获取用户刚刚选择的项目的选中值。我对收集所有选定的项目不感兴趣。只是当前选择的那个。谢谢
为了获取所选项目的显示值(内容),您可以使用如下内容:
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));
希望对您有所帮助:)