2011-01-27 60 views
2

當我的表單加載時,在組合框被填充和選擇之前,此事件(SelectedIndexChanged)被觸發。如何在表單完全加載之前阻止此事件的代碼執行?我試圖測試.SelectedIndex但它在VB設計/編輯返回0vb.net/winform - 組合框SelectedIndexChanged?

+0

如果SelectedIndex是0而不是-1,那麼實際* *的項目被選中。通過你的代碼,看看堆棧跟蹤。 – 2011-01-27 23:30:07

回答

1

combobox enabled propertyfalse,然後你所有加載後添加到組合框combobox1.enabled=true

,這將有助於!

+0

它對你有幫助嗎? :) – FeRtoll 2011-01-27 23:19:07

0

待辦事項me.Validate.children沒有工作

1

這是因爲發生的事情,你將項目添加到您的組合框在啓動時它會自動選擇作爲值顯示(組合框默認行爲)列表中的第一個。第一項的默認選擇會導致selectedindexchanged處理程序觸發並且您的例程運行。

你應該做的是看看使用addhandler和removehandler。

例如:

您的組合框的索引改變程序被稱爲「indexchangedroutine」和你的組合框被稱爲「mycombobox」。

在啓動時:

addhandler mycombobox.selectedindexchanged, addressof indexchangedroutine 

的addressof部分是例行的名稱,你想叫時,此控件的事件觸發。

爲了防止例程在啓動時觸發,您應該先填充組合框項和第二個調用addhandler以鏈接事件和邏輯。

如果需要進行更新(如更新計時器),您可以調用removehandler而不是addhandler,它將取消邏輯與控件事件之間的關聯。你可以做你的更新,當你完成後,可以再次調用addhandler來將它們鏈接起來備份以供使用。

希望這可以幫助你一些。看起來好像有更多的代碼涉及到,但是這種方法避免了在你的selectedindexchanged例程中使用hacky修復,比如「here here」標誌。

相關問題