Hallo zusammen
Ich brauche Hilfe, bei einem Projekt das ich zuvor schon einmal programmeirt habe, jedoch irgendwie abhanden gekommen ist.
Ich ziehe per Drag'n'Drop Dateien auf meine Listview, der Code dazu sieht so aus:
Da ich keine gleichen Dateien will, hab ich mir eine Funktion (IsAlreadyInListview) gebastelt, dir mir zurückgibt (true/false), ob die Datei bereits in der Listview aufgelistet ist:
Falls nicht, wird sie mit der Sub "AddListviewMain" aufgelistet:
Das funktioniert perfekt, allerdings nur bei der ersten Datei die ich auf meine Listview ziehe.
Sobald ich eine zweite Datei darauf ziehe, wird diese nicht aufgelistet. Ziehe ich eine gleiche Datei darauf wird auch keine Fehlermeldung ausgegeben.
Einzelschritt hat nichts gebracht, sobald er bei "IsAlreadyInListview" bei "For Each Datei As String In lv_main.Items" ankommt, und auf F8 drücke, fällt er aus dem Einzelschritt raus und zeigt die Form an, auf der die zweite Datei nicht zu sehen ist. Also als hätte ich statt F5 anstatt F8 gedrückt.. (Ich habe F8 gedrückt, hab's schon 10x versucht).
Wo liggt das Problem, hab ich was vergessen?
Würde mich über Hilfe freuen.
Mfg Dancger
Ich brauche Hilfe, bei einem Projekt das ich zuvor schon einmal programmeirt habe, jedoch irgendwie abhanden gekommen ist.
Ich ziehe per Drag'n'Drop Dateien auf meine Listview, der Code dazu sieht so aus:
VB.NET-Quellcode
- Private Sub lv_main_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lv_main.DragEnter
- If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
- 'Kopiereffekt
- e.Effect = DragDropEffects.Copy
- End If
- End Sub
- Private Sub lv_main_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lv_main.DragDrop
- 'Auslesen
- Dim data() As String = e.Data.GetData(DataFormats.FileDrop)
- For Each Datei As String In data
- Dim DI As New IO.FileInfo(Datei)
- If Not IsAlreadyInListview(Datei) Then
- AddListeviewMain(DI.Name, DI.Length, DI.DirectoryName)
- Else
- M("Information", "Die Datei """ & DI.Name & """ ist bereits vorhanden.", MessageBoxButtons.OK, MessageBoxIcon.Information)
- End If
- Next
- End Sub
Da ich keine gleichen Dateien will, hab ich mir eine Funktion (IsAlreadyInListview) gebastelt, dir mir zurückgibt (true/false), ob die Datei bereits in der Listview aufgelistet ist:
VB.NET-Quellcode
- Private Function IsAlreadyInListview(ByVal Filepath As String) As Boolean
- Dim DI As New IO.FileInfo(Filepath)
- If lv_main.Items.Count > 0 Then
- For Each Datei As String In lv_main.Items
- If Datei = DI.Name Then
- Return True
- Exit Function
- End If
- Next
- End If
- Return False
- End Function 'Bereits in ListBox vorhanden
Falls nicht, wird sie mit der Sub "AddListviewMain" aufgelistet:
Das funktioniert perfekt, allerdings nur bei der ersten Datei die ich auf meine Listview ziehe.
Sobald ich eine zweite Datei darauf ziehe, wird diese nicht aufgelistet. Ziehe ich eine gleiche Datei darauf wird auch keine Fehlermeldung ausgegeben.
Einzelschritt hat nichts gebracht, sobald er bei "IsAlreadyInListview" bei "For Each Datei As String In lv_main.Items" ankommt, und auf F8 drücke, fällt er aus dem Einzelschritt raus und zeigt die Form an, auf der die zweite Datei nicht zu sehen ist. Also als hätte ich statt F5 anstatt F8 gedrückt.. (Ich habe F8 gedrückt, hab's schon 10x versucht).
Wo liggt das Problem, hab ich was vergessen?
Würde mich über Hilfe freuen.
Mfg Dancger
MESS WITH THE BEST, DIE LIKE THE REST!