Combobox и My.Settings
Я использую My.Settings для хранения различного текста для каждого элемента в выпадающем списке
Это выглядит так
Я добавил в настройки проекта 5 настроек типа "Строка"
Я использую этот код
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If cmbperiod.SelectedItem = 1 Then
txtnote.Text = My.Settings.first()
ElseIf cmbperiod.SelectedItem = 2 Then
txtnote.Text = My.Settings.second()
ElseIf cmbperiod.SelectedItem = 3 Then
txtnote.Text = My.Settings.third()
ElseIf cmbperiod.SelectedItem = 4 Then
txtnote.Text = My.Settings.fourth()
ElseIf cmbperiod.SelectedItem = 5 Then
txtnote.Text = My.Settings.fifth()
End If
End Sub
Я могу загрузить значение из my.settings, но как я могу его отредактировать.
Пример: я хочу напечатать заметку для третьего периода и в форме Form_Closing, чтобы сохранить этот текст в моем settings.third, чтобы в следующий раз, когда я открою форму, она будет загружена.
Анель
1 ответ
Private Sub Form_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If cmbperiod.SelectedItem = 1 Then
My.Settings.first() = txtnote.Text
ElseIf cmbperiod.SelectedItem = 2 Then
My.Settings.second() = txtnote.Text
ElseIf cmbperiod.SelectedItem = 3 Then
My.Settings.third() = txtnote.Text
ElseIf cmbperiod.SelectedItem = 4 Then
My.Settings.fourth() = txtnote.Text
ElseIf cmbperiod.SelectedItem = 5 Then
My.Settings.fifth() = txtnote.Text
End If
End Sub
Это решит ваш вопрос, но сохранит только текущее выбранное значение.
Так, например, если вы хотите сохранить несколько значений, вам нужно будет добавить команду txtnote.leave
который поймает текущее изменение.
Например:
Private Sub txtnote_Leave(sender As Object, e As EventArgs) Handles txtnote.Leave
If cmbperiod.SelectedItem = 1 Then
My.Settings.first() = txtnote.Text
ElseIf cmbperiod.SelectedItem = 2 Then
My.Settings.second() = txtnote.Text
ElseIf cmbperiod.SelectedItem = 3 Then
My.Settings.third() = txtnote.Text
ElseIf cmbperiod.SelectedItem = 4 Then
My.Settings.fourth() = txtnote.Text
ElseIf cmbperiod.SelectedItem = 5 Then
My.Settings.fifth() = txtnote.Text
End If
End Sub
После этого вы, вероятно, захотите выполнить SelectedIndexChanged
поэтому, когда вы выбираете разные ComboBox
значения, которые вы можете загрузить txtnote
ценности тоже.
Вы сделаете это следующим образом:
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
If cmbperiod.SelectedItem = 1 Then
txtnote.Text = My.Settings.first()
ElseIf cmbperiod.SelectedItem = 2 Then
txtnote.Text = My.Settings.second()
ElseIf cmbperiod.SelectedItem = 3 Then
txtnote.Text = My.Settings.third()
ElseIf cmbperiod.SelectedItem = 4 Then
txtnote.Text = My.Settings.fourth()
ElseIf cmbperiod.SelectedItem = 5 Then
txtnote.Text = My.Settings.fifth()
End If
End Sub