在2015年的WinForms这确实是一个错误或我只是在做我一些错误......的WinForms组合框的错误 - 2项具有相同的值,但不同的密钥
1)创建一个新的WinForms项目(.NET 4.0 )并添加一个组合框到主窗体。 2)使用此为您的形式加载代码:除非我要疯了
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Dim items As New Dictionary(Of Integer, String)
items.Add(1, "Value 1")
items.Add(2, "Value 2")
items.Add(3, "Value 3")
items.Add(4, "Value 3")
Dim dataSource As New BindingSource(items, Nothing)
ComboBox1.DataSource = dataSource
ComboBox1.DisplayMember = "Value"
ComboBox1.ValueMember = "Key"
End Sub
通知项目3 & 4如何具有相同的值,但不同的密钥,且显示器和价值的成员设置是否正确(,其是可能的)。当您运行该应用程序时,打开组合框并选择最后一个项目。现在,再次打开组合框,您会注意到现在选择了倒数第二项。这是一个问题。
有什么想法?
谢谢!
编辑:我添加了一个Infragistics的UltraComboEditor的形式,放在下面的代码在窗体加载事件:
For Each item As KeyValuePair(Of Integer, String) In items
UltraComboEditor1.Items.Add(New ValueListItem With {.DataValue = item.Key, .DisplayText = item.Value})
Next
UltraComboEditor1.SelectedIndex = 0
UltraComboEditor1.AutoComplete = True
的Infragistics的控制让我自动完成,并进入我自己的文字,它是不会改变我当我选择与上面的项目具有相同文本的项目时进行选择。 Winforms控件不应该改变我的选择。
将下拉样式更改为'DropDownList'。用户可以将部分文本输入为DropDown样式,并且CBO将搜索与文本部分中输入内容相匹配的第一个文本。你显然不喜欢这个。 – Plutonix
用户需要能够输入自己的值,这是支持与DropDownList? – DonnieDarko
这不是我不喜欢它,而是我明确地选择了第4项,并以某种方式将控制权交给第3项。我需要所有这些功能,并且我需要用户能够开始输入并选择第一个。这个问题与用户输入任何内容无关。 – DonnieDarko