ListBox.Item的大小更改时触发事件

时间:2011-03-14 12:33:31

标签: c# winforms listboxitem

ListBox.Items.Count更改时,我想更新/调用某个函数。除ListBox或删除项目外,如何触发功能?

3 个答案:

答案 0 :(得分:1)

此操作没有任何事件。您将需要执行以下操作之一:

  1. 创建一个提取此信息的线程并提醒您(糟透了)
  2. 覆盖列表框并公开这些事件(好但是为什么?)
  3. 只需在您添加和删除的位置添加所需的代码到列表框(大多数人都这样做)
  4. 我认为3是要走的路。

答案 1 :(得分:1)

您可以使用ObservableCollection作为列表框的数据源。然后,您可以为CollectionChanged事件创建处理程序。

答案 2 :(得分:0)

因为我正在使用AsyncBindingList并且正在后台工作线程上运行。并且AsyncBindingList连接到我的ListBox。因此,当我的Worker线程完成其工作时,它将更新AsyncBindingList作为回报它将更新我在表单上的listBox。

但是在列表框中添加项目时,我正在寻找调用更新其他控件的方法。所以,最后我得到了解决方案。

解决方案是当工作线程完成它的工作时,它将调用RunWorkerCompletedEventHandler。当它通过RunWorkerCompletedEventHandler调用一个Method时,我触发了Forms.Invoke方法,该方法在表单类中触发了一个方法,该方法更新了所有控件。

但我真的不知道这是最好的方法。如果您有任何建议。请发帖作为答案。