Ошибка программы копирования файлов VB.NET: System.NullReferenceException в FolderBrowserDialog1 - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь создать программу, которая копирует файлы из одной папки в другую, и я также использую индикатор выполнения, чтобы увидеть, какие файлы копируются. Когда я запускаю эту программу, я получаю сообщение об ошибке в папке browserdialog1. Ошибка System.NullReferenceException. Когда я запускаю программу, я могу открыть приложение, но когда я нажимаю кнопку, появляется сообщение об ошибке.

Public Class Form1
    Dim my As System.Diagnostics.Process = System.Diagnostics.Process.GetCurrentProcess

    Dim directoryTargetLocation As String 'Selected file path
    Dim Destinydirectory As String 'Selected dest directory path

Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    Dim FolderBrowserDialog1 As Object = Nothing
    FolderBrowserDialog1.Description = "Select directory" **// Gettig error in this Line**
    With FolderBrowserDialog1
        If .ShowDialog() = DialogResult.OK Then
            directoryTargetLocation = .SelectedPath
            TextBox1.Text = directoryTargetLocation.ToString
            Button2.Enabled = True

        End If
    End With
End Sub

Private Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
    FolderBrowserDialog2.Description = "Select destiny directory"
    With FolderBrowserDialog2
        If .ShowDialog() = DialogResult.OK Then
            Destinydirectory = .SelectedPath
            TextBox2.Text = Destinydirectory.ToString
            TextBox2.Text = TextBox2.Text.Remove(TextBox2.Text.Length - 1) & 
     TextBox1.Text.Substring(TextBox1.Text.LastIndexOf("\"))
            Button3.Enabled = True

        End If
    End With
End Sub

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Вы объявили FolderBrowserDialog1 как объект.

Что вы хотите сделать, это объявить его как FolderBrowserDialog.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim FolderBrowserDialog1 As New FolderBrowserDialog
    FolderBrowserDialog1.Description = "Select directory"
    With FolderBrowserDialog1
        If .ShowDialog() = DialogResult.OK Then
            directoryTargetLocation = .SelectedPath
            TextBox1.Text = directoryTargetLocation.ToString
            Button2.Enabled = True

        End If
    End With
End Sub
0 голосов
/ 28 июня 2018

Вы не создали объект FolderBrowserDialog1.

Редактировать

Вы были близки!

Что вам нужно:

Dim FolderBrowserDialog1 As New FolderBrowserDialog

Это создает новый объект FolderBrowserDialog.

Что у вас есть:

Dim FolderBrowserDialog1 As Object = Nothing

, который создает новый универсальный объект с именем FolderBrowserDialog1 и явно устанавливает его как «ничто»

Это означает, что он не имеет никаких свойств или методов, на которые вы ссылались, поэтому вы получите ошибку.

...