我有一个带有TJvComboEdit控件的表单(来自Jedi Visual Components库,jvcl)。这个控件有一个AutoCompleteList,如果我将AutoCompleteOptions设置为acoUpDownKeyDropsList,我可以在运行时按向上或向下键显示这个列表。
到目前为止,这很好,但除此之外,我希望控件的按钮也显示该列表(就像TComboBox按钮一样),但我找不到任何方法来做到这一点。列表的显示似乎是由一些内部的IAutoComplete Windows界面完成的,该界面没有公开用于显示列表的API。
我错过了什么吗?或者我可以使用任何其他控件吗? (除了显而易见的TComboBox)?
答案 0 :(得分:2)
TJvComboEdit
使用IAutoComplete
和IAutoComplete2
接口进行自动填充功能,无法手动为其调用下拉列表。
您可以使用以下hack将焦点设置为TJvComboEdit
并模拟↓键。
procedure TForm1.Button1Click(Sender: TObject);
begin
if JvComboEdit1.CanFocus then
begin
JvComboEdit1.SetFocus;
keybd_event(VK_DOWN, 0, 0, 0);
keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
end;
end;