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

  1. 输入文字
  2. 异步带回结果
  3. 向上和向下选择列表中的结果, BUT 会保留在输入框中输入的文本,以便用户可以继续编辑以不同方式限制结果集
  4. Enter将触发父表单将处理的事件
  5. 我有异步结果并过滤所有工作,但我没有一个很好的方法来显示和选择结果。

    组合框会自动填充输入框,其中包含向下箭头时选择的内容。失败#3。

    我有DevExpress控件,但他们的组合框做了同样的事情,我无法弄清楚如何覆盖它们。

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

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

    非常感谢线索!

有帮助吗?

解决方案

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

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top