按下 Enter 并删除内容时,组合框会擦除建议

Posted

技术标签:

【中文标题】按下 Enter 并删除内容时,组合框会擦除建议【英文标题】:Combobox Wipes Suggestion When Pressing Enter with Contents Dropped 【发布时间】:2016-10-19 13:49:57 【问题描述】:

我在组合框方面遇到了这个非常奇怪的问题。

我有一个 ComboBox 填充了来自数据库的条目。但是,此问题与数据库或其内容无关。

当我按下 ComboBox 上的向下箭头,然后在 SuggestAppend 处于打开状态时键入项目内容的一部分时,它会擦除​​文本而不是完成该行。如果我只是打字,那么问题就不会发生。只有当我先删除列表时。

您可以通过在空表单上创建一个组合框来重新创建它。给它一些项目,将其 AutoCompleteSource 设置为 ListItems 并将 AutoCompleteMode 设置为 SuggestAppend。

现在在运行应用程序时,删除列表,不要退出此列表,只需开始输入条目的一部分即可。然后按回车。它将擦除组合框文本的内容。

有没有办法解决这个错误?

【问题讨论】:

我不知道这是否是您想要的行为,但您可以将KeyPress 事件添加到将设置YourComboBox.DroppedDown = False 的组合框。这让你只看到建议框,当你按下回车时不会清除 请写下这个作为答案。它解决了我的问题,你是我的英雄。 【参考方案1】:

仅当建议框和包含项目的框同时可见时才会出现此问题。

KeyPress 处理程序添加到您的组合框并将DroppedDown 属性设置为False,如下所示:

Private Sub YourCombo_KeyPress(sender As Object, e As KeyPressEventArgs) Handles YourCombo.KeyPress
    YourCombo.DroppedDown = False
End Sub

这将关闭项目框并保持建议框可见。当您按 Enter 时,它将不再清除文本。

【讨论】:

以上是关于按下 Enter 并删除内容时,组合框会擦除建议的主要内容,如果未能解决你的问题,请参考以下文章

当键盘出现时,白框会遮挡视图

鼠标按下时 Gtk::Widget on_enter_notify?

如何使用 bash 删除和替换终端中的最后一行?

我怎样才能让我在 Canvas 中的两个图像不会相互擦除?

RobotFramework:SHIFT+ENTER 组合按键 SeleniumLibrary

当应用程序失去焦点时,Windows 窗体组合框会触发 SelectionChangeCommitted、SelectedValueChanged 和 SelectedIndexChanged 事件