У меня есть Listbox со 100-200 значениями по умолчанию и включен режим мультиселек-простой.Установить ListBox selecteditems с помощью ItemText?
Я сохранить выбранные текстовые элементы в списке строки:
Private Sub ListBox_Styles_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox_Styles.SelectedIndexChanged
Styles_List.Clear()
For Each item In ListBox_Styles.SelectedItems : Styles_List.Add(item) : Next
Save_INI_settings()
End Sub
После этого суб вызовы «Save_INI_settings» процедура я сохранить значения в файл INI, как это:
WriteINIFile.WriteLine("Styles=" & String.Join(",", Styles_List.ToArray))
... Что дает этот результат:
Styles=Alternative,Electro,Pop,Rock
Теперь в следующей загрузке моего приложения , как я могу установить выбранные элементы списка, выбрав текстовые значения ini?
Это, как я загрузить мои настройки INI:
If ValueName = "Styles".ToLower Then
For Each Item In Value.split(",")
' ListBox_Styles.SetSelected(Item, True)
Next
End If
... Где вар "VALUENAME" является "Стили" и "Значение" УАК "Alternative, Electro, Pop, Rock" так и с для я получаю это:
Alternative
Electro
Pop
Rock
PS: Я не хочу, чтобы сохранить индекс целых чисел в текстовых элементов в файле INI вместо этого, и я не хочу, чтобы сохранить эти настройки в разделе настроек приложения.
UPDATE:
Это, как я делаю это прямо сейчас:
If ValueName = "Styles".ToLower Then
For Each Item In Value.split(",")
' Try to add the string as is
ListBox_Styles.SelectedItems.Add(Item)
' Try to add the string as TitleCase
ListBox_Styles.SelectedItems.Add(Char.ToUpper(Item(0)) + StrConv(Item.Substring(1), VbStrConv.Lowercase))
' Try to add the string as WordCase
ListBox_Styles.SelectedItems.Add(System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(Item))
Next
End If
Работы, как и ожидалось, но слишком много итераций
Спасибо за ваш ответ, но он терпит неудачу, если любое значение lowerstring и элемент ListBox является Wordcase, например, значение INI: «рок "и значение элемента списка:« Рок », вы знаете, как я могу это сделать в этих мероприятиях? Игнорировать или что-то еще? – ElektroStudios
Ну, в чем причина изменения дела? Если это возможно, я бы не изменил случай при записи INI-файла, в противном случае в пространстве имен глобализации есть метод, который восстанавливает правильный случай строки. Позвольте мне проверить, и я обновлю ответ – Steve
Спасибо, причина в том, почему я разрешу пользователю редактировать изменения INI, добавив, удалив значения, чтобы пользователь мог писать ниже или выше, чем вы знаете. Я знаю, как изменить случай строки, но, возможно, не является 100% идеальным, поэтому я прошу игнорировать или что-то простое, см. мое обновление, пожалуйста – ElektroStudios