Vb.net 组合框和My.Settings
我正在使用我的.Settings为combobox中的每个项目存储不同的文本 看起来像这样 我在项目设置中添加了5个类型为“String”的设置 我正在使用这个代码Vb.net 组合框和My.Settings,vb.net,text,combobox,my.settings,Vb.net,Text,Combobox,My.settings,我正在使用我的.Settings为combobox中的每个项目存储不同的文本 看起来像这样 我在项目设置中添加了5个类型为“String”的设置 我正在使用这个代码 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If cmbperiod.SelectedItem = 1 Then txtnote.Text
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加载值,但如何编辑它
例如,我想在第三个期间和表单关闭时键入注释,以将该文本保存到我的设置中。第三,所以下次打开表单时,它将被加载
阿内尔
这将解决您的问题,但只保存当前选定的值。因此,例如,如果要保存多个值,则必须添加一个命令,如
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
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
在此之后,您可能希望执行SelectedIndexChanged
,因此当您选择不同的ComboBox
值时,您也可以加载txtnote
值。您将这样做:
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
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
当用户选择一个新项目时,您也希望执行该代码,否则前一个期间的值将丢失;当窗体关闭时,将值保存到存储在My.Settings中的变量中。最重要的部分是监督。我想,您忘了调用My.Settings.save,否则将不会提交任何内容。@MrCoDeXeR我没有在代码中的任何位置使用My.Settings.save函数,并且它正常工作。停止应用程序,重新启动并将值拉回来。你必须调用它,否则它不会提交,下次你运行应用程序时,它将不会有我保证的值…伙计,如果你愿意,我可以给你我的Skype,我将共享我的屏幕,这样你就可以看到它是有效的:)你把它们拉回来了吗?