Hoi specialisten
Met onderstaande code maak ik een datagridview met een imagekolom waar ik fotos inplaats, indien ze aanwezig zijn.
Bij dubbelklikken op een imagevak kan je browsen naar een jpg en plaatst die nadat hij de afmetingen heeft aangepast.
Werkt goed maar er is een probleem als er al een foto (jpg) aanwezig is.
Dan zou moet hij de bestaande jpg file moeten overschrijven.
Maar omdat deze in gebruik is (denk ik), krijg ik er een foutmelding op! (melding= "Er is een algemene fout opgetreden in GDI+.")
Waar is het jpg bestand dan nog bezet?
Dank bij voorbaat!
Met onderstaande code maak ik een datagridview met een imagekolom waar ik fotos inplaats, indien ze aanwezig zijn.
Bij dubbelklikken op een imagevak kan je browsen naar een jpg en plaatst die nadat hij de afmetingen heeft aangepast.
Werkt goed maar er is een probleem als er al een foto (jpg) aanwezig is.
Dan zou moet hij de bestaande jpg file moeten overschrijven.
Maar omdat deze in gebruik is (denk ik), krijg ik er een foutmelding op! (melding= "Er is een algemene fout opgetreden in GDI+.")
Waar is het jpg bestand dan nog bezet?
Code:
Public Class Invoer_Klassen
Dim Path As String = Application.StartupPath()
Dim x, y As Integer
Dim root As String
Private Sub Invoer_Klassen_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGridView1.RowCount = 20
For ln = 1 To 20
DataGridView1.Rows(ln - 1).Height = 65
If File.Exists(Path & "\klas" & k & ln & ".jpg") Then
DataGridView1.Item(2, ln - 1).Value = Image.FromFile(Path & "\klas" & k & ln & ".jpg")
End If
Next
End Sub
Private Sub DataGridView1_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
x = e.RowIndex
y = e.ColumnIndex
If y = 2 Then
OpenFileDialog1.ShowDialog()
End If
End Sub
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
root = Path & "\klas" & k & x + 1 & ".JPG"
If OpenFileDialog1.FileName = root Then
MessageBox.Show("Zelfde foto!")
Exit Sub
End If
Dim b, h As Integer
Dim img As Image = Image.FromFile(OpenFileDialog1.FileName)
b = img.Width / img.Height * 65
h = 65
Dim bmp As Bitmap = New Bitmap(b, h)
Using g As Graphics = Graphics.FromImage(bmp)
g.DrawImage(img, 0, 0, bmp.Width, bmp.Height)
End Using
DataGridView1.Item(2, x).Value = bmp
bmp.Save(root, System.Drawing.Imaging.ImageFormat.Jpeg)
End Sub
End Class
Dank bij voorbaat!
Laatst bewerkt: