ListBox.SelectedItem为空通知

时间:2012-05-15 13:13:21

标签: c# winforms listbox selecteditem

我需要跟踪ListBox中当前选定的项目,以便在所选项目变为null时关闭表单上的其他控件。我尝试使用SelectedIndexChanged事件,但是当所选项目为空时它不会引发。

你能告诉我什么吗?

更新:所选项目变为空,因为我使用空集合设置新的DataSource值。这可能是我问题的原因吗?

我需要解释一下。 ListBox表示数据库中的项集合。当用户添加/编辑/删除某些项目时,我通过调用此方法刷新列表框:

private void RefreshList()
{
     lbParts.DataSource = this.database.Fetch<part>(string.Empty);
}

从数据库中获取所有项目,将其转换为List<part>集合并设置为ListBox DataSource。

2 个答案:

答案 0 :(得分:1)

这是不正确的。当SelectedItem变为null时,将引发SelectedIndexChanged。在这种情况下,SelectedIndex将为-1。

编辑:你确实是正确的,当你改变DataSource时,你没有得到SelectedIndexChanged。我建议您在之前立即显式设置SelectedIndex = -1 随时更改DataSource

答案 1 :(得分:0)

也许还处理DataSourceChanged事件?如果列表框中的可用选项发生变化,那么我认为这是在表单可用控件上执行刷新的原因吗?