按下 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?
RobotFramework:SHIFT+ENTER 组合按键 SeleniumLibrary
当应用程序失去焦点时,Windows 窗体组合框会触发 SelectionChangeCommitted、SelectedValueChanged 和 SelectedIndexChanged 事件