1

現在、アドレス帳アプリを作ろうとしています。アプリケーションディレクトリにデフォルトのアドレス帳があるかどうかをロード時にチェックします。存在しない場合、ユーザーは選択したアドレス帳を開くことができます。選択したファイルを現在のファイルとして設定する際に問題があります。新しい連絡先をファイルに追加して追加する2番目のフォームを開くまで、何でもうまくいきます。連絡先は最初のフォームで選択したファイルに追加されますが、この「フォームの追加」を閉じると、現在の xml パスがリセットされ、プログラムは「連絡先の追加」で変更した xml ファイルを開く代わりに、アドレス帳を再度開くように要求します。「連絡先フォームの追加」で xmlCurrentPath を設定しても、連絡先フォームが再度表示された後はクリアされます。これは私のコードです:

Public Class Form2
Private myTable As New DataTable()
Dim path = My.Application.Info.DirectoryPath
Dim xmlDefaultPath As String = path + "\address.xml"
Dim xmlCurrentPath As String
Dim fileDlg As New OpenFileDialog
Public isXml As Boolean = False

'Sets current xml path
Public Sub setCurrentPath(ByVal path As String)
    xmlCurrentPath = path
End Sub

Public Sub XmlExistence(ByVal xmlpath As String)
'Checks if current xml path exists and if not then checks if there is a default address book file in root directory
    If IsNothing(xmlCurrentPath) Then
        If System.IO.File.Exists(xmlpath) Then
            xmlCurrentPath = xmlDefaultPath
        Else
            xmlCurrentPath = ""
        End If
    End If
End Sub

Public Sub LoadForm(sender As Object, e As EventArgs) Handles Me.Shown
'checks if there is current xml path and if not asks if you want to choose from file
    If IsNothing(xmlCurrentPath) Then
        XmlExistence(xmlDefaultPath)
        If Not xmlCurrentPath = "" Then
            CreateTable()
            LoadXml(xmlCurrentPath)
        Else
            CreateTable()
            Dim addressfile = MessageBox.Show("Brak pliku adresów w katalogu głównym programu. Czy chcesz wybrać plik z dysku ? Jeśli wybierzesz nie zostanie utworzony nowy plik.", "Pytanie", MessageBoxButtons.YesNo)
            If addressfile = Windows.Forms.DialogResult.Yes Then
                fileDlg.Title = "Otwórz plik adresów"
                fileDlg.Filter = "XML Files|*.xml"
                fileDlg.ShowDialog()
                xmlCurrentPath = fileDlg.FileName
                LoadXml(xmlCurrentPath)
            End If
        End If
    End If

End Sub

以前に選択したアドレス帳に新しい連絡先が追加された後、連絡先の追加フォームが閉じられたときに、アドレス帳フォーム​​にこのアドレス帳が再び表示されるようにするにはどうすればよいですか。

4

0 に答える 0