У меня проблема с тем, что элемент управления ComboBox изменит свое текстовое значение при изменении его размера. Вот пример кода, над которым я работал:
Option Explicit On
Option Strict On
Public Class FMain
Private Sub FMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
uxComboBox.DropDownStyle = ComboBoxStyle.DropDown
uxComboBox.AutoCompleteSource = AutoCompleteSource.ListItems
uxComboBox.AutoCompleteMode = AutoCompleteMode.Suggest
ComboTest()
End Sub
Private Sub ComboTest()
Dim value As String = "6"
uxComboBox.Text = String.Empty
uxComboBox.Items.Clear()
uxComboBox.Items.AddRange(New String() {"4 9/16", "6 9/16", "7 9/16", "8 9/16"})
Dim index As Integer = uxComboBox.FindStringExact(value)
If uxComboBox.SelectedIndex index Then
uxComboBox.SelectedIndex = index
End If
If uxComboBox.SelectedIndex = -1 AndAlso _
Not String.Equals(uxComboBox.Text, value, StringComparison.OrdinalIgnoreCase) Then
uxComboBox.Text = value
End If
' unselect the text in the combobox
'
uxComboBox.Select(0, 0)
End Sub
End Class
Обратите внимание, что эта форма (FMain) имеет один комбинированный список (uxComboBox), который прикреплен к вершине. Когда я запускаю код, я вижу, что поле со списком имеет значение «6», чего я и ожидал. Когда я затем изменяю размер формы, поле со списком получает значение «6 9/16», которое я бы НЕ ожидал.
Кто-нибудь знает, почему это происходит? Любые предлагаемые обходные пути?
Спасибо!
Стивен