Windows窗体ComboBox问题

时间:2009-09-03 17:07:49

标签: winforms

我有一个组合框,可以通过单击下拉箭头来加载数据库以加载它的内容。如果在下拉框中显示数据并且我没有选择任何内容,则组合框的当前值会被吹走。在我加载数据的例程中,我尝试保存当前值并在加载完成后将其恢复。不起作用。

[编辑]在此处添加了评论中的代码以获取易读性

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;

1 个答案:

答案 0 :(得分:1)

如果将“当前值”存储为SelectedItem属性,则它可能不是新列表中存在的对象,因为它将包含全新的对象。您需要做的是存储当前值的ID(如果您幸运拥有唯一ID),然后在新创建的列表中搜索具有相同ID的对象(或者您用于唯一标识项目的任何内容) ,也许只是ToString() ...)。