【发布时间】:2019-03-24 11:03:19
【问题描述】:
我的 ComboBoxes 有问题,如果我输入它以获取一个值,然后将文本更改为列表中的第一个项目并键入第一个字母。
我有:
- AutoCompleteMode 设置为 SuggestAppend
- AutoCompleteSource 设置为 ListItems
- DropDownStyle 设置为 DropDownList
我在 ComboBox 所在的 Form 的 Load 事件中添加 ComboBox 的项目。
例如下面是来自 Load 事件的代码,我在其中填充了我设置如下的 ComboBox。
`Me.ComboBox1.Text = ""
Me.ComboBox1.Items.Add("a")
Me.ComboBox1.Items.Add("aaa")
Me.ComboBox1.Items.Add("combo")
Me.ComboBox1.Items.Add("combobox")
Me.ComboBox1.Items.Add("combobox test")
Me.ComboBox1.Items.Add("common")
Me.ComboBox1.Items.Add("common dialog")`
运行代码后,如果我选择 ComboBox1 并键入 common - 在 ComboBox1 中选择 common,但如果我离开 ComboBox1,则 Text 将恢复为组合。
这有点奇怪,好像我在它抛出的常见 ComboBox1_Leave 事件过程中使用以下代码:
MsgBox(ComboBox1.Text)
我还尝试将 Text 的值分配给 ComboBox1_KeyUp 事件过程中的字符串,然后将其分配给 ComboBox1_Leave 事件过程中的 ComboBox1.Text ,但这没有任何作用。
如果我在将字符串值分配给 ComboBox1.Text 之前放置了上面的 MsgBox 代码,那么 Text 值会恢复为 Common 但这不是一个实际的解决方案。
我还注意到,如果我在按 Tab 之前按 Enter 键,它会保留正确的值,但我再次认为这不是一个特别实用的解决方案。
有谁知道这里发生了什么以及我该如何解决它?
【问题讨论】: