3
A
回答
1
你有没有想过定时器可以定期检查列表框项目,如果有一些项目比 开始你的线程并停止检查。
0
你可以使用线程,但我认为用事件处理方法会更好。默认情况下,ListBox类没有添加项目的事件,但您可以扩展该类以创建自己的项目。下面是你会怎么做一个例子:
public class MyListBox : ListBox
{
private const int LB_ADDSTRING = 0x180;
private const int LB_INSERTSTRING = 0x181;
protected override void WndProc(ref Message m)
{
if (m.Msg == LB_ADDSTRING || m.Msg == LB_INSERTSTRING)
{
OnItemAdded(this, new EventArgs());
}
base.WndProc(ref m);
}
public event EventHandler ItemAdded;
protected void OnItemAdded(object sender, EventArgs e)
{
if (ItemAdded != null)
ItemAdded(sender, e);
}
}
一旦你取得了这个类,只是用它的形式。
public partial class Form1 : Form
{
MyListBox lb = new MyListBox();
public Form1()
{
InitializeComponent();
this.Controls.Add(lb);
lb.ItemAdded += lb_ItemAdded;
}
void lb_ItemAdded(object sender, EventArgs e)
{
// process item here...
}
}
相关问题
- 1. 等待事件发生?
- 2. 等待线程
- 3. 让主线等待事件
- 4. 等待事件
- 5. 即使发生事件,Linux进程仍然等待事件
- 6. 詹金斯等待事件发生
- 7. 调用condition_variable等待函数时线程如何等待?
- 8. 主线程不会等待事件或回调触发
- 9. 如何等待事件或超时
- 10. 等待事件提升线程取消
- 11. 等待的线程
- 12. 让线程等待
- 13. Boost线程等待条件
- 14. tomcat:等待条件线程
- 15. 多线程 - 等待线程
- 16. Selenium - 等待事件
- 17. 重用等待线程
- 18. 线程在等待某事时发生了什么
- 19. XAML,MVVM和等待事情发生
- 20. 等待用户事件
- 21. 用Selenium等待JavaScript事件
- 22. 等待事件从主线程触发后台线程产生它
- 23. 如何在继续当前线程之前等待事件发生?
- 24. 重用类等待事件触发
- 25. 使UI线程等待使用的Thread.sleep
- 26. 等待递归线程生成器
- 27. C#生成新线程,然后等待
- 28. 如果我调用WaitHandle.Dispose(),等待线程会发生什么?
- 29. SDL_RenderPresent()不等待vsync - 如何等待?
- 30. 如何等待NSThread,直到iOS中发生某些事件?
你试过了什么吗?显示你的努力和阅读[常见问题]和[问] – 2013-03-14 06:42:28
为什么这需要成为一个线程?你为什么不能处理一个事件? – 2013-03-14 06:48:08
哪个事件? ListBox中没有ItemsChanged或ItemsAdded事件 – TalentTuner 2013-03-14 06:49:50