投稿者 ロト君  (社会人) 投稿日時 2021/12/18 01:03:31
VS19でVB.NETを使ってダイアログを使ってファイルのやり取りをしようとしています。
然しながら、最初はうまく行きますが、違う画面に遷移した後に、再度ダイアログを開こうとすると、エラーになります。

エラー内容

System.AccessViolationException: '保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。

上記の内容です。
記載してるコードは下記のモノです。

    Private Sub btn_img_Click(sender As Object, e As EventArgs) Handles btn_img.Click

        'OpenFileDialogクラスのインスタンスを作成
        Dim ofd As New OpenFileDialog()

        'はじめのファイル名を指定する
        'はじめに「ファイル名」で表示される文字列を指定する
        ofd.FileName = Nothing
        'はじめに表示されるフォルダを指定する
        '指定しない(空の文字列)の時は、現在のディレクトリが表示される
        ofd.InitialDirectory = Nothing
        '[ファイルの種類]に表示される選択肢を指定する
        '指定しないとすべてのファイルが表示される
        ofd.Filter = "画像ファイル(*.jpg)|*.jpg"
        '[ファイルの種類]ではじめに選択されるものを指定する
        '2番目の「すべてのファイル」が選択されているようにする
        ofd.FilterIndex = 1
        'タイトルを設定する
        ofd.Title = "開くファイルを選択してください"
        'ダイアログボックスを閉じる前に現在のディレクトリを復元するようにする
        ofd.RestoreDirectory = True
        '存在しないファイルの名前が指定されたとき警告を表示する
        'デフォルトでTrueなので指定する必要はない
        ofd.CheckFileExists = True
        '存在しないパスが指定されたとき警告を表示する
        'デフォルトでTrueなので指定する必要はない
        ofd.CheckPathExists = True

        'ダイアログを表示する
        If ofd.ShowDialog = DialogResult.OK Then
            'OKボタンがクリックされたとき、選択されたファイル名を表示する
            txt_img.Text = ofd.FileName
            pic_img.SizeMode = PictureBoxSizeMode.Zoom
            pic_img.ImageLocation = ofd.FileName
        End If

    End Sub

どうしても、自分では解決できません。どなたか、ご教授お願い致します。