2

次のコードがあります。

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

基本的に、フォームが読み込まれるときに My.Settings に何かがあるかどうかを確認し、そうでない場合は値をデフォルトに設定したいのですが、プログラムを再度開くと、else ステートメントが実行されず、私が何か間違ったことをしていると信じており、設定が保存されていません。これへの入力はありますか?ありがとう。

4

2 に答える 2

1

String.IsNullOrWhiteSpace()の代わりに使ってみてください= Nothing

サブを次のように変更します。

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
于 2013-11-04T21:48:25.850 に答える