Bild im ppsGrid (Zelle) anzeigen - VB.NET
Posted: 30.09.2012, 19:12
Hallo Thorsten, Hallo Forum
Bin neu hier im Forum und möchte erstmal alle herzlichst begrüßen.
Ich arbeite mich zur Zeit in das ppsGrid ein. Das klappt auch schon sehr gut, da es in weiten Bereichen logisch und verständlich funktioniert.
Da ich in VB.NET programmiere muss ich den C#-Code der Hilfedatei übersetzen.
Deshalb bin ich mir nicht immer sicher, ob ich hier alles richtig gemacht habe.
Meine Frage:
Ich möchte ein Bild im Grid anzeigen. Dazu habe ich das C#-Beispiel aus der Hilfe 1:1 übersetzt.
Die For Each -Schleife funktioniert, da Spalten und Zeilen korrekt angelegt werden.
-> jedoch bleiben die Zellen leer.
Anbei mein VB-Code. Was ist hier falsch?
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim col As ppsGrid.GridCol
Dim row As ppsGrid.GridRow
Dim Files() As String = System.IO.Directory.GetFiles("E:\Test\Icons")
Dim img As Image
Dim Pt As Point 'C# -> Point Pt = Grid1.FocusCell
Pt = Grid1.FocusCell
Grid2.Scrollbar = ppsGrid.eScrollbar.Vertical ' // bildlaufleiste vertikal
Grid2.SelectionType = ppsGrid.eSelectionType.None ' // keine Markierungen
Grid2.AddCols(2) ' // zwei Spalten
col = Grid2.Cols(0) ' // links Spalte
col.Width = 24 ' // mit 'feste' Weite
col.AutoNumber = True ' // autom. Nummerierung
col.Fixed = True ' // als Zeilenkopf
col = Grid2.Cols(1) ' // rechte Spalte
col.Width = ppsGrid.eWidthType.Percent ' // autom. Breite
col.WidthPercent = 100 ' // ...über gesamte Breite
col.ImageAlignHorz = ppsGrid.eContentAlign.Center ' // bilder horiz. zentriert
col.ImageAlignVert = ppsGrid.eContentAlign.Center ' // ...vertikal zentriert
For Each nm As String In Files ' // alle Dateien
If nm.EndsWith("jpg") Then ' // ..jpg ?
row = New ppsGrid.GridRow() ' // ....neue zeile erzeugen
Grid2.Rows.Add(row) ' // ....anhängen
row.Height = 64 '// ....Zeilenhöhe
row(1).Image = New Bitmap(nm) ' // ....2.Zelle mit Bild
End If
Next
'################################################
'Weitere 'Versuche', ein Bild in eine Zelle zu bekommen.
'################################################
Grid2.AddCols(10) ' // 10 spalten erzeugen
Grid2.AddRows(20) ' // ...und 20 Zeilen
img = Bitmap.FromFile("E:\Test\Icons\Buch.jpg") ' // Bild laden
Grid2.FocusCell = New Point(4, 4)
Pt = Grid2.FocusCell
Grid2(Pt).Image = New Bitmap(img)
'Kann man ein Bild auch aus anderen Controls ins Grid laden? z.B ImageList, PictureBox, My.Resource
'Der folgende Code funktioniert jeweils nicht
Grid2.Cells(4, 5).Image = img 'Direkt
'oder so?
Grid2.Cells(4, 6).Image = New Bitmap(Me.PictureBox1.Image) 'Mittels PictureBox
'oder so?
Grid2.Cells(4, 7).Image = Me.ImageList1.Images(1) 'Mittels ImageList
'oder so?
Grid2.Cells(4, 9).Image = My.Resources.TestBild1 'Mittels Resourcendatei
'Dies funktioniert. Bild als BackgroundImage wird angezeigt. (Also wird 'img' korrekt geladen.)
Grid2.BackgroundImage = img
Grid2.BackgroundImageLayout = ppsGrid.eImageLayout.Stretch
End Sub
Bin neu hier im Forum und möchte erstmal alle herzlichst begrüßen.
Ich arbeite mich zur Zeit in das ppsGrid ein. Das klappt auch schon sehr gut, da es in weiten Bereichen logisch und verständlich funktioniert.
Da ich in VB.NET programmiere muss ich den C#-Code der Hilfedatei übersetzen.
Deshalb bin ich mir nicht immer sicher, ob ich hier alles richtig gemacht habe.
Meine Frage:
Ich möchte ein Bild im Grid anzeigen. Dazu habe ich das C#-Beispiel aus der Hilfe 1:1 übersetzt.
Die For Each -Schleife funktioniert, da Spalten und Zeilen korrekt angelegt werden.
-> jedoch bleiben die Zellen leer.
Anbei mein VB-Code. Was ist hier falsch?
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim col As ppsGrid.GridCol
Dim row As ppsGrid.GridRow
Dim Files() As String = System.IO.Directory.GetFiles("E:\Test\Icons")
Dim img As Image
Dim Pt As Point 'C# -> Point Pt = Grid1.FocusCell
Pt = Grid1.FocusCell
Grid2.Scrollbar = ppsGrid.eScrollbar.Vertical ' // bildlaufleiste vertikal
Grid2.SelectionType = ppsGrid.eSelectionType.None ' // keine Markierungen
Grid2.AddCols(2) ' // zwei Spalten
col = Grid2.Cols(0) ' // links Spalte
col.Width = 24 ' // mit 'feste' Weite
col.AutoNumber = True ' // autom. Nummerierung
col.Fixed = True ' // als Zeilenkopf
col = Grid2.Cols(1) ' // rechte Spalte
col.Width = ppsGrid.eWidthType.Percent ' // autom. Breite
col.WidthPercent = 100 ' // ...über gesamte Breite
col.ImageAlignHorz = ppsGrid.eContentAlign.Center ' // bilder horiz. zentriert
col.ImageAlignVert = ppsGrid.eContentAlign.Center ' // ...vertikal zentriert
For Each nm As String In Files ' // alle Dateien
If nm.EndsWith("jpg") Then ' // ..jpg ?
row = New ppsGrid.GridRow() ' // ....neue zeile erzeugen
Grid2.Rows.Add(row) ' // ....anhängen
row.Height = 64 '// ....Zeilenhöhe
row(1).Image = New Bitmap(nm) ' // ....2.Zelle mit Bild
End If
Next
'################################################
'Weitere 'Versuche', ein Bild in eine Zelle zu bekommen.
'################################################
Grid2.AddCols(10) ' // 10 spalten erzeugen
Grid2.AddRows(20) ' // ...und 20 Zeilen
img = Bitmap.FromFile("E:\Test\Icons\Buch.jpg") ' // Bild laden
Grid2.FocusCell = New Point(4, 4)
Pt = Grid2.FocusCell
Grid2(Pt).Image = New Bitmap(img)
'Kann man ein Bild auch aus anderen Controls ins Grid laden? z.B ImageList, PictureBox, My.Resource
'Der folgende Code funktioniert jeweils nicht
Grid2.Cells(4, 5).Image = img 'Direkt
'oder so?
Grid2.Cells(4, 6).Image = New Bitmap(Me.PictureBox1.Image) 'Mittels PictureBox
'oder so?
Grid2.Cells(4, 7).Image = Me.ImageList1.Images(1) 'Mittels ImageList
'oder so?
Grid2.Cells(4, 9).Image = My.Resources.TestBild1 'Mittels Resourcendatei
'Dies funktioniert. Bild als BackgroundImage wird angezeigt. (Also wird 'img' korrekt geladen.)
Grid2.BackgroundImage = img
Grid2.BackgroundImageLayout = ppsGrid.eImageLayout.Stretch
End Sub