2009-09-03 118 views
1

我有一個組合框出去的數據庫加載它的內容點擊下拉箭頭。如果在顯示下拉框後顯示數據,並且我沒有選擇任何內容,那麼組合框的當前值就會被吹走。在我的例程中加載數據,我試着保存當前值並在加載完成後恢復它。不起作用。Windows窗體組合框問題

[編輯]添加的代碼從這裏評論的可讀性

MyUltraCombo myultracombo = new MyUltraCombo(); 
//MyUltraCombo inherits from UltraCombo inside MyUltraCombo, I keep the table name to load from 
MyUltraCombo.BeforeDropDown += new System.ComponentModel.CancelEventHandler(cb_BeforeDropDown); 
//inside the eventhandler 
myultracombo.Load(); 
//inside the Load method 
datatable = DataUtility.GetAllRecords(tablename); 
combobox.datasource = datatable; 
+0

你可以發佈你的代碼嗎? – Sesame 2009-09-03 17:17:52

+0

MyUltraCombo myultracombo = new MyUltraCombo(); MyUltraCombo從UltraCombo 繼承內部MyUltraCombo,我把表名從 MyUltraCombo.BeforeDropDown + =新System.ComponentModel.CancelEventHandler(cb_BeforeDropDown)加載; 裏面的事件處理程序 myultracombo.Load(); 裏面的Load方法 datatable = DataUtility.GetAllRecords(tablename); combobox.datasource = datatable – codemnky 2009-09-03 17:53:31

回答

1

如果您存儲「當前值」作爲剛剛SelectedItem屬性,那麼它可能不會是一個對象,它是存在於新的列表,因爲它將包含全新的對象。你需要做的是存儲一個當前值的ID(如果你很幸運有一個唯一的ID),然後在新創建的列表中搜索具有相同ID的對象(或用於唯一標識項目的任何對象,也許只是ToString() ...)。