我试图实现的就像在普通ComboBox中将ItemIndex设置为-1一样,以便所选项目将被清除。DBLookupComboBox - 如何清除选定的项目?
DBLookupComboBox没有ItemIndex,而Text属性是只读的。那么如何清除选定的项目?请帮忙。提前谢谢了。
PS:关闭并重新打开DBLookupComboBox-> ListSource DataSet没有帮助。
我试图实现的就像在普通ComboBox中将ItemIndex设置为-1一样,以便所选项目将被清除。DBLookupComboBox - 如何清除选定的项目?
DBLookupComboBox没有ItemIndex,而Text属性是只读的。那么如何清除选定的项目?请帮忙。提前谢谢了。
PS:关闭并重新打开DBLookupComboBox-> ListSource DataSet没有帮助。
两种方式:
在1)运行时:DbLookupComboBox.KeyValue:= NULL;
2)在设计时:在DbLookupComboBox.NullValueKey属性设置为DEL(或您要使用的空运行时的值)
1)抛出EVariantTypeCastError。 2)导致访问冲突。 无论如何,谢谢。 – 2012-01-05 14:19:54
1)通常在查找关键字和关键字段不匹配时发生。如果你的关键字段是一个字符串,那么是的,你可以指定''。 2)我从未体验过这种感觉.. – 2012-01-05 18:00:25
DBLookupComboBox表示数据库字段的值。因此,您必须清除/更改字段的值,以通过代码清除/更改DBLookupComboBox的值。
您可以使用
DBLookupComboBox.KeyValue := -1;
设置KeyValue会重置所选项目,但会抛出EVariantTypeCastError异常。我正在使用C++ Builder 2009,不确定这是否与异常有关。不管怎么说,还是要谢谢你。 – 2012-01-05 14:17:41
如果您在属性设置dblokupcombobox关键字段第一次是“城市的任何键'//例如
如果要清除选定的项目,你可以使用这个
procedure TFtreset.BitBtn6Click(Sender: TObject);
begin
dblookupcombobox2.KeyValue:='city';
end;
我解决了DBLookupComboBox->键值=‘问题’;因为ListFields中的数据类型是String类型的。感谢Kutsoff和John Easley给我提供解决方案的线索。 :) – 2012-01-05 14:40:58