3

我正在尝试制作一个类似于 Firefox 3 Awesomebar 的组合框,具有以下行为:

  1. 输入文字
  2. 异步带回结果
  3. 上下选择列表中的结果,但保留在输入框中键入的文本,以便用户可以继续编辑以不同方式限制结果集
  4. Enter 触发父表单将处理的事件

我有异步结果和过滤所有工作,但我没有在结果中显示和选择的好方法。

当您向下箭头时,组合框会自动填充输入框。失败#3。

我有 DevExpress 控件,但他们的组合框做同样的事情,我不知道如何覆盖。

LookupEdit 不允许输入任意内容。PopupContainerEdit 也没有。

我想要的行为就像一个下面有一个列表框的文本框,并且文本框中的向上/向下事件传递给列表框。但是,如果我尝试制作一个将两者结合在一起的自定义控件,我不知道如何像普通组合框上的下拉菜单一样“浮动”列表框。

线索非常感谢!

4

2 回答 2

3

您可能需要使用文本框而不是组合框,因为使用箭头键是从组合列表中选择值并覆盖当前值。通过使用文本框,您可以在 TextChanged 事件中进行查找,并且可以通过覆盖 KeyPress 事件来存储当前键入的值,以收集和存储用户键入的键。
您必须在绘制事件中自行绘制值的弹出列表。

这可能看起来过于复杂,但您可能需要删除组合控件并自己实现它的一些功能。

于 2008-10-21T21:59:44.477 回答
3

我一直在使用 Skybound 的 AutoComplete 控件。免费。它可以自定义,以便它可以近似于 Awesomebar 的行为。

http://dev.skybound.ca/Products/AutoComplete/

于 2008-10-21T22:06:27.647 回答