vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
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?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Bild in Datagridview laden (anzeigen)394Erichbru20.01.23 13:56
Re: Bild in Datagridview laden (anzeigen)223Manfred X21.01.23 07:24
Re: Bild in Datagridview laden (anzeigen)198Erichbru22.01.23 16:25

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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