2012-01-05 77 views
5

我试图实现的就像在普通ComboBox中将ItemIndex设置为-1一样,以便所选项目将被清除。DBLookupComboBox - 如何清除选定的项目?

DBLookupComboBox没有ItemIndex,而Text属性是只读的。那么如何清除选定的项目?请帮忙。提前谢谢了。

PS:关闭并重新打开DBLookupComboBox-> ListSource DataSet没有帮助。

+0

我解决了DBLookupComboBox->键值=‘问题’;因为ListFields中的数据类型是String类型的。感谢Kutsoff和John Easley给我提供解决方案的线索。 :) – 2012-01-05 14:40:58

回答

1

两种方式:

1)运行时:DbLookupComboBox.KeyValue:= NULL;

2)在设计时:在DbLookupComboBox.NullValueKey属性设置为DEL(或您要使用的空运行时的值)

+0

1)抛出EVariantTypeCastError。 2)导致访问冲突。 无论如何,谢谢。 – 2012-01-05 14:19:54

+0

1)通常在查找关键字和关键字段不匹配时发生。如果你的关键字段是一个字符串,那么是的,你可以指定''。 2)我从未体验过这种感觉.. – 2012-01-05 18:00:25

2

DBLookupComboBox表示数据库字段的值。因此,您必须清除/更改字段的值,以通过代码清除/更改DBLookupComboBox的值。

2

您可以使用

DBLookupComboBox.KeyValue := -1;
+0

设置KeyValue会重置所选项目,但会抛出EVariantTypeCastError异常。我正在使用C++ Builder 2009,不确定这是否与异常有关。不管怎么说,还是要谢谢你。 – 2012-01-05 14:17:41

0

如果您在属性设置dblokupcombobox关键字段第一次是“城市的任何键'//例如

如果要清除选定的项目,你可以使用这个

procedure TFtreset.BitBtn6Click(Sender: TObject); 
begin 
    dblookupcombobox2.KeyValue:='city'; 
end;