有没有办法在按下按钮时下拉 TJvComboEdit 的自动完成列表?

发布于 2024-12-31 23:12:44 字数 353 浏览 0 评论 0原文

我有一个带有 TJvComboEdit 控件(来自 Jedi Visual Components 库,jvcl)的表单。该控件有一个 AutoCompleteList,如果我将 AutoCompleteOptions 设置为 acoUpDownKeyDropsList,我可以在运行时通过按向上或向下键显示此列表。

到目前为止,这很好,但除此之外,我希望控件的按钮也显示该列表(就像 TComboBox 按钮一样),但我找不到任何方法来做到这一点。列表的显示似乎是由一些内部 IAutoComplete Windows 接口完成的,该接口不公开用于显示列表的 api。

我错过了什么吗?或者我可以使用其他任何控件来代替吗? (除了明显的 TComboBox)?

I have got a form with a TJvComboEdit control (from Jedi Visual Components library, jvcl) on it. This control has got an AutoCompleteList and if I set AutoCompleteOptions to acoUpDownKeyDropsList I can at runtime show this list by pressing the up or down key.

So far, that's fine, but in addition to that I want the control's button to also show that list (like a TComboBox button does) but I can not find any way to do that. The showing of the list seems to be done by some internal IAutoComplete Windows interface which does not expose an api for showing the list.

Am I missing something? Or is there any other control I could use instead? (apart from the obvious TComboBox)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独留℉清风醉 2025-01-07 23:12:44

TJvComboEdit 使用 IAutoCompleteIAutoComplete2< /a> 自动完成功能的接口,无法手动调用它们的下拉列表。

您可以使用以下技巧将焦点设置到 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;

The TJvComboEdit uses the IAutoComplete and IAutoComplete2 interfaces for autocomplete features and there is no way to invoke the drop down list for them manually.

You can use the following hack which sets the focus to the TJvComboEdit and simulate the key.

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;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文