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