2009-09-03 120 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() ...)。