2017-02-06 4 views
0

У меня есть Dropbox с фиксированным числом элементов, которые определяются как:индекс Выберите Dropbox на основе предопределенного строки

"A --- пункт 1"

"B --- Пункт 2"

«C --- item 3»

В другом месте программы я получаю строку, содержащую первую букву элементов. например B Когда форма с загрузкой загружается, я хочу предварительно выбрать индекс с этой буквой.

Я думал об использовании InStr, но он не работает.

With Frm 
Dim TmpStr as String = String.Empty 
TmpStr = Str.InStr(0,1) 

Select Case TmpStr 
Case "A" 
    cbox.SelectedValue = 0 
Case "B" 
    cbox.SelectedValue = 1 
Case "C" 
    cbox.SelectedValue = 2 
End Case 
End With 
+1

Вы ищете 'SelectedIndex ', а не' SelectedValue' –

ответ

2

Чтобы получить символ, который вы можете использовать TmpStr = Str.Substring(0,1), чтобы получить один символ в виде строки или TmpStr = Str.First(), которая возвращает первую букву в качестве символьного типа.

Затем, как указано в моем комментарии, внутри вашего выбора, установите свойство вашего Combobox SelectedIndex в соответствующий индекс.

Примечание: Кроме того, необходимо изменить End Case к End Select

0

Вместо того, чтобы жестко Select Case, искать совпадения с помощью For Loop так:

Dim Str As String = "B" 
With Frm 
    For i As Integer = 0 To cbox.Items.Count - 1 
     If cbox.Items(i).ToString.ToUpper.StartsWith(Str.ToUpper) Then 
      cbox.SelectedIndex = i 
      Exit For 
     End If 
    Next 
End With