none
Laden von Dateien verhindern? RRS feed

  • Frage

  • Guten Morgen!

    Ich habe eine ListBox, in der Dateien gespeichert und später wieder geladen werden sollen. Will man speichern, aber es befindet sich keine Datei in der ListBox, erscheint eine MsgBox:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PlayListSAVE.Click

            If ListBox1.Items.Count = 0 Then

                MessageBox.Show(Me, "Füge erst Lieder in die Playlist ein, dann kannst du speichern!", "Negativ", MessageBoxButtons.OK, MessageBoxIcon.Information)

                Exit Sub       

    Else           

    Dim PlayList As New System.Collections.Specialized.StringCollection

                For Each item As String In ListBox1.Items

                    PlayList.Add(item)

                Next

                My.Settings.PlayList = PlayList

                My.Settings.Save()

                MessageBox.Show(Me, "Deine PlayList wurde gespeichert. Beim nächsten Start der Anwendung auf 'Laden' Klicken.", "Gespeichert!", MessageBoxButtons.OK, MessageBoxIcon.Information)

            End If

        End Sub

    Wenn man das Programm das erste mal startet und auf "Laden" klickt, hängt es sich auf, weil es nichts zu laden gibt. Also habe ich diese Meldung mit eingebaut:

     

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PlayListLOAD.Click

            If My.Settings.PlayList.Count = 0 Then

                MessageBox.Show(Me, "Du hast noch keine PlayList erstellt!", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)

                Exit Sub

            End If

            ListBox1.Items.Clear()

            For Each item As String In My.Settings.PlayList

                ListBox1.Items.Add(item)

            Next

        End Sub

    Doch die Methode funktioniert auch nicht... Es kommt die Meldung: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." Hat es evtl. mit der "= 0" etwas zutun?

    Danke schon mal!

    Sonntag, 30. August 2015 09:11

Antworten

  • Hi,

    wenn Du weißt, wie man debuggt, warum machst Du es dann nicht bzw. sagst gleich, welche Codezeile den Fehler verursacht. (Letztes mal wusstest Du es zudem nicht)

    Was soll man dir da helfen? Entweder ist My, My.Settings oder (was wahrscheinlicher ist) My.Settings.Playlist Nothing. Die Instanz wurde also nicht erzeugt. Daher solltest Du das entweder per:

    If Not My.Settings.Playlist Is Nothing Then
        ...
    End if

    prüfen und entsprechend darauf reagieren oder die Instanz vorher erstellen. Wo Du das machen musst, hängt von mehreren Faktoren ab.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Sonntag, 30. August 2015 09:42
    Moderator

Alle Antworten

  • Hi,

    setz doch bitte einfach mal einen Breakpoint auf die erste Zeile in der Methode und spring dann mit F10 durch die einzelnen Zeilen. Dann siehst Du auch genau, welches der angesprochenen Objekte Nothing ist.

    Für weitere Informationen zum Debugging in Visual Studio schau dir bitte diesen MSDN Artikel an:

      https://msdn.microsoft.com/de-de/library/dn986851.aspx


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Sonntag, 30. August 2015 09:23
    Moderator
  • Das hilft mir leider gar nicht -.- Ich weiß wie man Debuggt. Der Fehler tritt bei

    If My.Settings.PlayList.Count = 0 Then

    auf. Kann mir jemand helfen?



    Sonntag, 30. August 2015 09:37
  • Hi,

    wenn Du weißt, wie man debuggt, warum machst Du es dann nicht bzw. sagst gleich, welche Codezeile den Fehler verursacht. (Letztes mal wusstest Du es zudem nicht)

    Was soll man dir da helfen? Entweder ist My, My.Settings oder (was wahrscheinlicher ist) My.Settings.Playlist Nothing. Die Instanz wurde also nicht erzeugt. Daher solltest Du das entweder per:

    If Not My.Settings.Playlist Is Nothing Then
        ...
    End if

    prüfen und entsprechend darauf reagieren oder die Instanz vorher erstellen. Wo Du das machen musst, hängt von mehreren Faktoren ab.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Sonntag, 30. August 2015 09:42
    Moderator
  • Okay, danke! 

    Mit 

     If Not My.Settings.PlayList Is Nothing Then

                MessageBox.Show(Me, "Du hast noch keine PlayList erstellt!", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)

                Exit Sub

            End If

    funktioniert alles.

    Sonntag, 30. August 2015 09:58
  • Hi,

    glaub ich nicht, dass das so wie gewünscht funktioniert.

    Lass das "Not" an der Stelle weg, ansonsten kommt die Meldung immer dann, wenn das Objekt existiert und nicht, wenn es eben nicht existiert.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Sonntag, 30. August 2015 12:16
    Moderator