Fehler bei Öffnen von Form1

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Jan25ish.

    Fehler bei Öffnen von Form1

    Hallo,
    Ich schreibe gerade einen Dateimanager und hab ihn schon fast fertig. Aber plötzlich kommt beim Debuggen diese Fehlermeldung:

    Zusätzliche Informationen: Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt..

    Ich habe keine Ahnung wo der Fehler herkommt und was ich dagegen tun kann :(. Das einzige was ich seit dem letzten funktioniertem Debug geändert habe, ist dass ich einen Timer hinzugefügt habe, der prüft ob eine Neue Datei in den Ordner eingefügt wird in dem ich gerade im Datei Manager bin und dann die Listview im Manager aktualisiert. Hier ist der Code:

    VB.NET-Quellcode

    1. Dim anzahlderdateien As Integer = IO.Directory.GetFiles(pfad).Length
    2. If anzahlderdateien = Listview1.Items.Count = False Then
    3. Aktualisieren()
    4. End If

    Jan25ish schrieb:

    VB.NET-Quellcode

    1. If anzahlderdateien = Listview1.Items.Count = False Then
    mach das so:

    VB.NET-Quellcode

    1. If anzahlderdateien <> Listview1.Items.Count Then
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Den Timer habe ich gelöscht aber trotzdem kommt die Meldung noch. Der Ordner enthält fünf Dateien.
    Hier ist der Sourcecode:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim array As String = ""
    3. Dim menge As Integer = ListView1.Items.Count
    4. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    5. My.Settings.Reload()
    6. TextBox1.Text = My.Settings.Verzeichnis
    7. FolderBrowserDialog1.SelectedPath = My.Settings.Verzeichnis
    8. If My.Settings.Verzeichnis = "" = False Then
    9. Auflisten()
    10. End If
    11. If My.Settings.Ordner_verstecken = True Then
    12. Shell("attrib +h " & My.Settings.Verzeichnis)
    13. Else
    14. Shell("attrib -h " & My.Settings.Verzeichnis)
    15. End If
    16. End Sub
    17. Private Sub Form1_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
    18. End
    19. End Sub
    20. Private Sub ÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ÖffnenToolStripMenuItem.Click
    21. FolderBrowserDialog1.ShowDialog()
    22. ListView1.Items.Clear()
    23. Auflisten()
    24. End Sub
    25. Private Sub OptionenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles OptionenToolStripMenuItem.Click
    26. Optionen.ShowDialog()
    27. End Sub
    28. Private Sub Auflisten()
    29. Try
    30. My.Settings.Verzeichnis = FolderBrowserDialog1.SelectedPath
    31. My.Settings.Save()
    32. My.Settings.Reload()
    33. TextBox1.Text = My.Settings.Verzeichnis
    34. Dim wert As Integer = 0
    35. Dim i As String = ""
    36. Dim anzahl As Array = IO.Directory.GetFiles(FolderBrowserDialog1.SelectedPath)
    37. For Each i In IO.Directory.GetFiles(My.Settings.Verzeichnis)
    38. array = array & "#" & i
    39. ListView1.Items.Add(i.Split("%")(2))
    40. 'Dim pfad As String = array.Split("#")(wert + 1) ' & array.Split("#")(wert).Split("%")(0)
    41. 'Dim infos As IO.FileInfo = My.Computer.FileSystem.GetFileInfo(pfad) '"C:\Users\Kids\Videos\Supernatural\%Folge 1%Normalität als Exil%Staffel 6%.wmv")
    42. 'ListView1.Items(wert).SubItems.Add(i.Split("%")(3))
    43. 'ListView1.Items(wert).SubItems.Add(i.Split("%")(1))
    44. 'ListView1.Items(wert).SubItems.Add(infos.Extension)
    45. 'ListView1.Items(wert).SubItems.Add(Format(infos.Length / 1048576, "000") & " MB")
    46. 'wert += 1
    47. Next
    48. 'Dim wert As Integer = 0
    49. 'For Each i In IO.Directory.GetFiles(My.Settings.Verzeichnis)
    50. ' Dim pfad As String = array.Split("#")(wert + 1) ' & array.Split("#")(wert).Split("%")(0)
    51. ' Dim infos As IO.FileInfo = My.Computer.FileSystem.GetFileInfo(pfad) '"C:\Users\Kids\Videos\Supernatural\%Folge 1%Normalität als Exil%Staffel 6%.wmv")
    52. ' ListView1.Items(wert).SubItems.Add(i.Split("%")(3))
    53. ' ListView1.Items(wert).SubItems.Add(i.Split("%")(1))
    54. ' ListView1.Items(wert).SubItems.Add(infos.Extension)
    55. ' ListView1.Items(wert).SubItems.Add(Format(infos.Length / 1048576, "000") & " MB")
    56. ' wert += 1
    57. 'Next
    58. Catch ex As Exception
    59. End Try
    60. End Sub
    61. Private Sub LöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles LöschenToolStripMenuItem.Click
    62. If MessageBox.Show("Möchten Sie die Datei wirklich löschen?", "", MessageBoxButtons.YesNo) = MsgBoxResult.Yes Then
    63. My.Computer.FileSystem.DeleteFile(TextBox1.Text & "\" & ListView1.FocusedItem.Text)
    64. ListView1.Items.Remove(ListView1.FocusedItem)
    65. End If
    66. End Sub
    67. Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged
    68. If ListView1.SelectedItems.Count > 0 Then
    69. LöschenToolStripMenuItem.Enabled = True
    70. AbspielenToolStripMenuItem.Enabled = True
    71. AufFestplatteSpeichernToolStripMenuItem.Enabled = True
    72. Else
    73. LöschenToolStripMenuItem.Enabled = False
    74. AbspielenToolStripMenuItem.Enabled = False
    75. AufFestplatteSpeichernToolStripMenuItem.Enabled = False
    76. End If
    77. End Sub
    78. Private Sub AbspielenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AbspielenToolStripMenuItem.Click
    79. Process.Start(TextBox1.Text & "\" & ListView1.FocusedItem.Text)
    80. End Sub
    81. Private Sub AufFestplatteSpeichernToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AufFestplatteSpeichernToolStripMenuItem.Click
    82. Dim ofilter As String = ""
    83. If ListView1.FocusedItem.Text.Contains(".avi") Then
    84. ofilter = "Avi Dateien (*.avi)|*.avi"
    85. Else
    86. If ListView1.FocusedItem.Text.Contains(".wmv") Then
    87. ofilter = "Windows Media Video Dateien (*.wmv)|*.wmv"
    88. Else
    89. If ListView1.FocusedItem.Text.Contains(".mov") Then
    90. ofilter = "Mov Dateien (*.mov)|*.mov"
    91. Else
    92. ofilter = "Alle Dateien (*.*)|*.*"
    93. End If
    94. End If
    95. End If
    96. With SaveFileDialog1
    97. .Filter = ofilter
    98. .InitialDirectory = "Desktop"
    99. .Title = "speichern unter..."
    100. .FileName = ListView1.FocusedItem.Text
    101. .ShowDialog()
    102. End With
    103. End Sub
    104. Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
    105. If e.KeyData = Keys.Enter = True Then
    106. If My.Computer.FileSystem.DirectoryExists(TextBox1.Text) Then
    107. My.Settings.Verzeichnis = TextBox1.Text
    108. FolderBrowserDialog1.SelectedPath = TextBox1.Text
    109. My.Settings.Save()
    110. My.Settings.Reload()
    111. ListView1.Items.Clear()
    112. ListView1.Focus()
    113. Auflisten()
    114. Else
    115. MsgBox("Das Verzeichnis existiert nicht.", MsgBoxStyle.Critical)
    116. TextBox1.Text = My.Settings.Verzeichnis
    117. ListView1.Focus()
    118. End If
    119. End If
    120. End Sub
    121. Private Sub TextBox1_GotFocus(sender As Object, e As EventArgs) Handles TextBox1.GotFocus
    122. TextBox1.BackColor = Color.White
    123. End Sub
    124. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    125. If TextBox1.Focused = True Then
    126. TextBox1.BackColor = Color.White
    127. Else
    128. TextBox1.BackColor = SystemColors.Control
    129. TextBox1.Text = My.Settings.Verzeichnis
    130. End If
    131. End Sub
    132. End Class
    Das hier kann nicht gehen:

    VB.NET-Quellcode

    1. Dim menge As Integer = ListView1.Items.Count

    Mach die Zuweisung weg und setzte den Wert ggf. in Form_Load, ist aber eig. unnötig, denn es muss ja 0 sein, da du noch nichts hinzugefügt hast.
    Mfg
    Vincent