| |
VB.NET - Ein- und UmsteigerBild in Datagridview laden (anzeigen) | | | Autor: Erichbru | Datum: 20.01.23 13:56 |
| Hallo ich versuche gerade in einer Testversion Bilder in eine DGV Spalte zu laden, warum zeigt er mir die Bilder nicht an?
Private Sub Load_Data()
Dim dt As New DataTable
dt.Columns.Add("Bildpfad")
dt.Rows.Add("D:\_Bildgalerie\blume.jpg")
dt.Rows.Add("D:\_Bildgalerie\blume2.jpeg")
dt.Rows.Add("D:\_Bildgalerie\blume3.jpg")
dt.Rows.Add("D:\_Bildgalerie\minion.png")
DataGridView2.DataSource = dt
Dim colImage As New DataGridViewImageColumn
DataGridView2.Columns.Add(colImage)
Dim intI, intC As Integer
intC = dt.Rows.Count
For intI = 0 To intC - 1
Dim cellImage As New DataGridViewImageCell
cellImage.Value = Drawing.Image.FromFile(dt.Rows(intI).Item( _
0).ToString)
cellImage.ImageLayout = DataGridViewImageCellLayout.Zoom
DataGridView2.Rows(intI).Cells(1) = cellImage
Next
End Sub Hinzufügen dagegen funktioniert hiermit
Private Sub btn_Browse_Image_Click(sender As Object, e As EventArgs) Handles _
btn_Browse_Image.Click
Dim ofd As New OpenFileDialog
With ofd
.Filter = "Choose Image(*.bmp)|*.bmp|jpe (*.jpe)|*.jpe|jpeg (" & _
"*.jpeg)|*.jpeg|jpg (*.jpg)|*.jpg|jpeg2000 (" & _
"*.jpeg2000)|*.jpeg2000|png (*.png)|*.png|gif (*.gif)|*.gif|Alle" & _
"Dateien(*.*)|*.*"
.FilterIndex = 8
.FileName = ""
End With
If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
PictureBox1.Image = Image.FromFile(ofd.FileName)
End If
TextBox1.Text = ofd.FileName.ToString
End Sub
Private Sub btn_Add_To_DataGridView_Click(sender As Object, e As EventArgs) _
Handles btn_Add_To_DataGridView.Click
Dim ms As New MemoryStream
Try
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim img As Byte()
img = ms.ToArray()
DataGridView1.Rows.Add(TextBox1.Text, img)
Catch ex As Exception
MessageBox.Show(ex.Message.ToString())
End Try
End Sub | |
Re: Bild in Datagridview laden (anzeigen) | | | Autor: Manfred X | Datum: 21.01.23 07:24 |
| Hallo!
Datenspalten besitzen einen Datentyp. | |
Re: Bild in Datagridview laden (anzeigen) | | | Autor: Erichbru | Datum: 22.01.23 16:25 |
| Hallo Manfred,
Danke für die Antwort hiermit hat es dann funktioniert! ist aber kein automatismus und kann das Bild bei Bedarf nicht ändern.
ich speichere die Bilder (PictureBox) in einen Ordner.
nun soll dann auch entsprechend Datarow in die DGVCells zugewiesen werden und gespeichert werden (Dataset)
hier hole ich erst ein Bild und dann add to DGV
Private Sub Add_Image_To_DataGridView_From_PictureBox_Load(sender As Object, e _
As EventArgs) Handles MyBase.Load
Dim dgvImageColumn As New DataGridViewImageColumn
dgvImageColumn.HeaderText = "image"
dgvImageColumn.ImageLayout = DataGridViewImageCellLayout.Stretch
Dim dgvTextColumn As New DataGridViewTextBoxColumn
dgvTextColumn.HeaderText = "ID"
DataGridView1.Columns.Add(dgvTextColumn)
DataGridView1.Columns.Add(dgvImageColumn)
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
DataGridView1.RowTemplate.Height = 120
DataGridView1.Columns(1).Width = 100
DataGridView1.AllowUserToAddRows = False
Load_Data()
End Sub
Private Sub btn_Browse_Image_Click(sender As Object, e As EventArgs) _
Handles btn_Browse_Image.Click
Dim ofd As New OpenFileDialog
With ofd
.Filter = "Choose Image(*.bmp)|*.bmp|jpe (*.jpe)|*.jpe|jpeg (" & _
"*.jpeg)|*.jpeg|jpg (*.jpg)|*.jpg|jpeg2000 (" & _
"*.jpeg2000)|*.jpeg2000|png (*.png)|*.png|gif (*.gif)|*.gif|Alle" & _
"Dateien(*.*)|*.*"
.FilterIndex = 8
.FileName = ""
End With
If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
PictureBox1.Image = Image.FromFile(ofd.FileName)
End If
TextBox1.Text = ofd.FileName.ToString
End Sub
Private Sub btn_Add_To_DataGridView_Click(sender As Object, e As EventArgs) _
Handles btn_Add_To_DataGridView.Click
Dim ms As New MemoryStream
Try
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim img As Byte()
img = ms.ToArray()
DataGridView1.Rows.Add(TextBox1.Text, img)
Catch ex As Exception
MessageBox.Show(ex.Message.ToString())
End Try
End Sub
Private Sub Load_Data()
Dim dt As New DataTable("Image")
With dt
.Columns.Add("ID", GetType(Integer))
.Columns.Add("Text", GetType(String))
.Columns.Add("Image", GetType(Image))
.Rows.Add(1, "Blume", Image.FromFile("D:\_Bildgalerie\blume.jpg"))
.Rows.Add(2, "Blume", Image.FromFile("D:\_Bildgalerie\blume2.jpeg"))
.Rows.Add(3, "Blume", Image.FromFile("D:\_Bildgalerie\blume3.jpg"))
.Rows.Add(4, "Blume", Image.FromFile("D:\_Bildgalerie\minion.png"))
End With
With DataGridView2
.DataSource = dt
.AllowUserToAddRows = False
End With
End Sub und im CellFormating habe ich die Spalte so angepasst
der Code ist nicht von mir, aber funktioniert
'Image CellFormatting
Private Sub DataGridView2_CellFormatting(sender As Object, e As _
DataGridViewCellFormattingEventArgs) Handles DataGridView2.CellFormatting
If TypeOf CType(sender, DataGridView).Rows(e.RowIndex).Cells( _
e.ColumnIndex) _
Is DataGridViewImageCell Then
If CType(CType(sender, DataGridView).Rows(e.RowIndex).Cells( _
e.ColumnIndex), _
DataGridViewImageCell).Value IsNot DBNull.Value Then
CType(CType(sender, DataGridView).Rows(e.RowIndex).Cells( _
e.ColumnIndex), _
DataGridViewImageCell).ImageLayout = _
DataGridViewImageCellLayout.Zoom
'Column-Breite ist schon fest voreingestellt
CType(sender, DataGridView).Rows(e.RowIndex).Height = CInt( _
CType(sender, _
DataGridView).Columns(e.ColumnIndex).Width / 3 * 4)
End If
End If
End Sub wie kann man das drucken? und wie hole ich mir das aus meinem Bilderordner? | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|