Hallo liebes Forum,
Ich kämpfe seit einiger Zeit mit einem Problem. Und zwar habe ich ein DataGridView (list) mit insgesamt 8 Spalten, wobei die 1. eine ImageColumn und die Restlichen normale TextBoxColums sind. Jetzt wird die ImageColumn vom User mit einem Bild gefüllt. (Das Bild ist willkürlich und befindet sich somit weder in den Ressourcen noch in einer Datenbank). Der Link zum Bild wird in die 8. Spalte eingefügt. Meine Frage nun: Hätte jemand eine Idee, wie ich das gesamte DGV speichern kann, mitsamt dem Bild? Wenn es nur aus Text bestünde, gäbe es ja via .xml einfache Wege, aber mit einer ImageColumn bin ich leider ratlos...
Mein Ansatz ist ziemlich notdürftig: Beim schließen der Form werden sämtliche Werte in der 8. Spalte (URL zum Bild) ausgelesen und Zeile für Zeile in ein Textfile geschrieben.
Dann beim nächsten Start soll die Textdatei gelesen werden und für jede Zeile in der Datei eine Zeile im DGV erstellt und das Bild gesetzt werden...
Leider funktionniert das nicht so wie gewünscht und ehrlichgesagt habe ich keine Ahnung in welche Richtung ich überhaupt suchen soll... Hat da jemand eine Idee?
Gruss CodeRed
Ich kämpfe seit einiger Zeit mit einem Problem. Und zwar habe ich ein DataGridView (list) mit insgesamt 8 Spalten, wobei die 1. eine ImageColumn und die Restlichen normale TextBoxColums sind. Jetzt wird die ImageColumn vom User mit einem Bild gefüllt. (Das Bild ist willkürlich und befindet sich somit weder in den Ressourcen noch in einer Datenbank). Der Link zum Bild wird in die 8. Spalte eingefügt. Meine Frage nun: Hätte jemand eine Idee, wie ich das gesamte DGV speichern kann, mitsamt dem Bild? Wenn es nur aus Text bestünde, gäbe es ja via .xml einfache Wege, aber mit einer ImageColumn bin ich leider ratlos...
Mein Ansatz ist ziemlich notdürftig: Beim schließen der Form werden sämtliche Werte in der 8. Spalte (URL zum Bild) ausgelesen und Zeile für Zeile in ein Textfile geschrieben.
VB.NET-Quellcode
- Public Function writetext(ByVal path As String, idnex As Integer) 'Zum Schreiben in die Text-Datei
- Dim counter As Integer = 0
- Dim objWriter As New System.IO.StreamWriter(path)
- For Each line As DataGridViewRow In list.Rows
- objWriter.WriteLine(list.Item(index, counter).Value)
- Console.WriteLine(list.Item(index, counter).Value)
- counter = counter + 1
- Next
- objWriter.Close()
- End Function
- Private Sub Main_Close(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosed
- writetext(Application.StartupPath & "/Saves" & "\img.txt", 7)
- End Sub
Dann beim nächsten Start soll die Textdatei gelesen werden und für jede Zeile in der Datei eine Zeile im DGV erstellt und das Bild gesetzt werden...
VB.NET-Quellcode
- Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Dim counter As Integer = 0
- For Each line As String In System.IO.File.ReadLines(Application.StartupPath & "/Saves" & "\img.txt")
- If line <> "" Then
- list.Rows.Add()
- My.Computer.Network.DownloadFile(line, Application.StartupPath & "/Saves" & "\" & counter & ".jpg")
- Dim img As Bitmap = Image.FromFile(Application.StartupPath & "/Saves" & "\" & counter & ".jpg")
- Console.WriteLine(line)
- list.Item(0, counter).Value = img
- img.Dispose()
- End If
- Next line
- End Sub
Leider funktionniert das nicht so wie gewünscht und ehrlichgesagt habe ich keine Ahnung in welche Richtung ich überhaupt suchen soll... Hat da jemand eine Idee?
Gruss CodeRed
Umfangreicher Converter im Browser: CloudConvert
Temporäre e-Mail: temp-mail
Text-Übersetzter: DeepL
Kostenloser Webspace: bplaced
Temporäre e-Mail: temp-mail
Text-Übersetzter: DeepL
Kostenloser Webspace: bplaced