Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net My.Settings不保存变量_Vb.net_Visual Studio 2012 - Fatal编程技术网

Vb.net My.Settings不保存变量

Vb.net My.Settings不保存变量,vb.net,visual-studio-2012,Vb.net,Visual Studio 2012,我有以下代码: Imports System.IO Public Class Form2 Dim strInitialDirectory As String Dim strInitialFile As String Const strDefaultFileDirectory As String = "C:\Users\Sam\Desktop\Visual Basic\Test" Const strDefaultFileName As String = "\test.txt" Dim strF

我有以下代码:

Imports System.IO

Public Class Form2

Dim strInitialDirectory As String
Dim strInitialFile As String
Const strDefaultFileDirectory As String = "C:\Users\Sam\Desktop\Visual Basic\Test"
Const strDefaultFileName As String = "\test.txt"
Dim strFileJPath1 As String = strInitialDirectory + strInitialFile
Dim strFileJPath2 As String = strDefaultFileDirectory + strDefaultFileName

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    If My.Settings.strInitialDirectory = Nothing Or My.Settings.strInitialFile = Nothing Then
        My.Settings.strInitialDirectory = strDefaultFileDirectory
        My.Settings.strInitialFile = strDefaultFileName
    Else
        MsgBox("Else executed") ' debug 
        strInitialDirectory = strDefaultFileDirectory
        strInitialFile = strDefaultFileName
        strInitialDirectory = My.Settings.strInitialDirectory
        strInitialFile = My.Settings.strInitialFile
    End If
End Sub
End Class

基本上,当窗体加载时,我希望它检查我的.Settings中是否有任何内容,如果没有,则将值设置为默认值,但是在再次打开程序时,它不会执行else语句,让我相信我做错了什么,设置没有保存。有什么意见吗?谢谢。

您必须在My.Settings中调用保存功能

My.Settings.Save()
您应该在更新设置功能的末尾添加此项。这将保存下一个会话的所有设置

下面是UpdateSettings函数的一个示例:

Private子更新设置()
Console.WriteLine(“保存设置”)
My.Settings.WO_improvu=checkboximprovu.Checked
My.Settings.WO_prevu=CheckBoxPrevu.Checked
My.Settings.Date\u type=ComboBoxDateType.SelectedIndex
My.Settings.Date\u首秀=DateTimePickerDebut.Value
My.Settings.Save()
Console.WriteLine(“已保存设置”)
端接头

尝试使用
String.IsNullOrWhiteSpace()
而不是
=Nothing

将您的sub更改为:

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    If String.IsNullOrWhiteSpace(My.Settings.strInitialDirectory) OrElse String.IsNullOrWhiteSpace(My.Settings.strInitialFile) Then
        My.Settings.strInitialDirectory = strDefaultFileDirectory
        My.Settings.strInitialFile = strDefaultFileName
    Else
        MsgBox("Else executed") ' debug 
        strInitialDirectory = strDefaultFileDirectory
        strInitialFile = strDefaultFileName
        strInitialDirectory = My.Settings.strInitialDirectory
        strInitialFile = My.Settings.strInitialFile
    End If
End Sub

在加载事件结束时,添加My.Settings。Save@dbasnett德普,谢谢。