【发布时间】:2013-11-14 03:20:24
【问题描述】:
我的组合框有问题。我有一个OnClick 的事件处理程序,它根据选择的项目刷新数据。问题是当这种情况发生时:
- 下拉组合框以列出各种选项
- 在键盘上键入以查找匹配项
- 组合框更改此选择并调用
OnClick事件 - 我的屏幕由于此选择/事件而刷新
- 单击组合框外的某处可将焦点移开
- 即使
OnClick已被调用,组合框仍会返回上一个选择 - 即使组合框改回之前的选择,
OnClick也不会再次调用 - 此后,组合框显示的值与我的数据实际表示的值不同
因此,当您打开组合框并在键盘上键入几个字母以在下拉列表中查找项目时,OnClick 会被触发,这会刷新我的屏幕。但是,当您单击组合框外的某个位置(从而将焦点从它身上移开)时,组合框会变回之前选择的任何值,而不是我输入的值。同时,OnClick 事件没有被触发,因此与我在屏幕上加载的值相比,组合框显示的值不正确。
在这种情况下,在键盘上键入项目的情况下,如何使组合框停留在所选项目上?
【问题讨论】:
-
测试
DroppedDown,如果它被下拉不刷新屏幕会起作用吗? -
@SertacAkyuz 抱歉,我不明白你问了什么。
-
在OnClick事件中,测试ComboBox的DroppedDown,如果为false则不刷新屏幕。
-
知道了,我试试
-
@Jerry - 不整洁,但如果项目索引不匹配,您可能需要使用“OnCloseUp”重新同步。
标签: delphi combobox focus delphi-xe2