2017-02-21 17 views
0

まずは、私のコードを見てみましょう:文字列をVB.netのコードに変換する方法は?

Private Sub FormLoad(sender As Object, e As EventArgs) Handles MyBase.Load 

    txtMDF.Text = My.Settings.MDF 

End Sub 

My.Settings.MDFApplication.StartupPath + "\MyDB.mdf"の文字列値を持っていると仮定します。私はこの結果を得る:

Image 1

をしかし、私は結果になりたい:私は、以下のリンクや方法を試してみました

Image 2

+2

なぜ設定に 'Application.StartupPath'を置きますか?設定ファイルに名前を残して、Path.Combine()を使用して完全なファイル名を取得します。 –

+1

いいえ、ファイルの場所をApplication.StartupPath + + "\ MyDB .mdf "に変更する必要がありますが、後でデータベースの場所を変更したい場合は、MySettings ...に変更して保存してください。 –

+0

デフォルトで表示されますので、場所を変更したい場合は保存する必要がありますファイルパス全体を指定します。 –

答えて

2

ProGamerが示唆したように、

まず

保存しますMy.Settings.MDFのString =

セカンドなし

編集し、あなたのコードを次のように

Private Sub FormLoad(sender As Object, e As EventArgs) Handles MyBase.Load 

    If My.Settings.MDF = "None" Then 
     txtMDF.Text = Application.StartupPath + "\MyDB.mdf" 
    Else 
     txtMDF.Text = My.Settings.MDF 
    End If 
    txtMDF.Text = My.Settings.MDF 

End Sub 

サード

がYourFormClose_Event

Private Sub FormClosing(sender As Object, e As CancelEventArgs) Handles Me.Closing 
    My.Settings.MDF = txtMDF.Text 
    My.Settings.Save() 
End Sub 
に次のコードを追加します。

そして「アプリケーション」の代わりに「MDFの設定」の「スコープドロップダウン」から「ユーザー」を選択する必要があります。そうしないと、My.Settings.Save()は機能せず、「なし」のままです。

例:

enter image description here

+1

ああ、ありがとう!いいアイデアですよね! –

+0

私の喜び!あなたの結果を待っています:);) –

+1

'FormLoad'の' If ... else'ステートメントは意味がありません。とにかく設定からの値で 'txtMDF.Text'を指定しました – Fabio

関連する問題