2013-12-10 80 views
1

VB2010我有一個組合框被清除,然後由多個進程手動填充。我想用組合框中的項目數來更新標籤。我很難找到一個事件,當事件數量發生變化或組合框的內容發生變化時,這個事件會被解僱。我可以使用這種類型的事件嗎?我嘗試過TextChanged,但似乎不適用於所有情況。當組合框中的項目數發生變化時觸發的事件

+0

社區組織如何填充?他們是綁定還是你只是使用'Items.Add' – Plutonix

+0

我通過Items.Add手動添加它們。 – sinDizzy

回答

3

我建議您將ComboBox綁定到BindingList(Of String)並向ListChanged事件添加句柄。

Private Sub Init() 
    Me.list = New BindingList(Of String) 
    Me.ComboBox1.DataSource = Me.list 
    AddHandler Me.list.ListChanged, New ListChangedEventHandler(AddressOf Me._ListChanged) 
End Sub 

Private Sub _ListChanged(sender As Object, e As ListChangedEventArgs) 
    'Update label 
End Sub 

Private list As BindingList(Of String) 
+1

+1,應該提到BindingList可以通過其他對象來創建和維護:'myCBO.DataSource = otherObj.CBOListOfSomething'作爲RO提供或者功能 – Plutonix

+0

ok,但是現在我必須改變我所有的其他對象直接修改BindingList而不是ComboBox的代碼是否正確? – sinDizzy

+0

......或者你可以不管它,創建一個公共方法,並且每當別的東西改變一個CBO時,他們只是調用該方法 – Plutonix

相關問題