gpt4 book ai didi

delphi - 组合框 - 键入选择,然后单击焦点外 - 不会选择键入的项目

转载 作者:行者123 更新时间:2023-12-01 23:19:56 26 4
gpt4 key购买 nike

我的组合框有问题。我有一个 OnClick 事件处理程序,它根据所选项目刷新数据。问题是当这种情况发生时:

  1. 下拉组合框以列出各种选项
  2. 通过键盘输入来查找匹配的项目
  3. 组合框更改此选择并调用 OnClick 事件
  4. 我的屏幕因该选择/事件而刷新
  5. 单击组合框外部的某处可将焦点移开
  6. 即使已调用 OnClick,组合框也会返回到之前的选择
  7. 即使组合框变回之前的选择,也不会再次调用 OnClick
  8. 此后,组合框显示的值与我的数据实际表示的值不同

因此,当您打开组合框并在键盘上键入几个字母以在下拉列表中查找该项目时,会触发 OnClick 刷新我的屏幕。但是,当您单击组合框外部的某个位置(从而将焦点从其上移开)时,组合框会变回之前选择的任何值,而不是我键入的值。同时,OnClick 事件未触发,因此与我在屏幕上加载的值相比,组合框显示的值不正确。

在键盘上键入项目的情况下,如何使组合框停留在所选项目上?

最佳答案

在我的代码中,我使用 OnCloseUp 事件来处理这个问题。好吧,事实上,我在下拉列表中使用了子类组合,它们覆盖了 ChangeCloseUp 方法:

procedure TMyDropDownList.Change;
begin
RespondToChange;
inherited;
end;

procedure TMyDropDownList.CloseUp;
begin
RespondToChange;
inherited;
end;

RespondToChange 方法对新的 ItemIndex 值使用react。如果在下拉组合时对每个更改使用react的成本很高,那么您可能会考虑省略 Change 方法中对 RespondToChange 的调用。

关于delphi - 组合框 - 键入选择,然后单击焦点外 - 不会选择键入的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19968911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com