在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