Проблемы с источником данных ComboBox и настройкой application.setting - PullRequest
3 голосов
/ 18 ноября 2010

Я пытаюсь сделать что-то, что, на мой взгляд, будет относительно простым в WinForms, но это не так.

Вот что я хочу сделать:

Есть ComboBoxвыпадающие значения заполняются из массива.Например:

Dim versions As String() = New String() {"3", "4"}
cmbVersion.DataSource = versions

Просто, без проблем.Но у меня возникают проблемы с тем, что у меня есть тот же самый комбинированный список, связанный с user.settings (строковое значение) с именем MyVersion.В настоящее время значение равно «4».

Когда я загружаю свою форму, я ожидаю, что раскрывающийся список будет «3» и «4», а отображаемый текст будет таким, как в MyVersion.Это не работаетЗначение всегда равно «3», и изменение его на «4» в выпадающем списке не влияет на MyVersion.

Что я здесь не так делаю?

1 Ответ

1 голос
/ 20 ноября 2010

Прежде всего, я думаю, вы должны понимать, что значение, которое приходит от My.Settings.MyVersion, не то, что вы определяете в свойствах / настройках вашего проекта.Это только начальные (стандартные) значения.Фактическое значение берется из файла user.config.Файл user.config создается автоматически во время выполнения при первом запуске приложения новым пользователем, и значение, отличное от значения по умолчанию, записывается в настройку области пользователя.Расположение выглядит примерно так:

c: \ Documents and Settings \ [имя пользователя] \ Локальные настройки \ Данные приложения \ [название компании] [имя домена приложения] [eid] [hash] \ [verison]

Хотя это может отличаться в зависимости от ОС.

Во-вторых, настройка не сохраняется, пока вы не сообщите об этом, позвонив:

My.Settings.Save()

Надеюсь, это прояснитнемного вещей.

Вы можете связать значение, установив свойство SelectedItem, либо в конструкторе, либо вызвав:

cmbVersion.SelectedItem = My.Settings.Myversion
...