| |
VB.NET - FortgeschritteneBilder in DataGridView in einer einheitlichen Größe anzeigen | | | Autor: martol | Datum: 08.11.11 14:35 |
| VB.NET 2008
Hallo zusammen,
Kennt jemand die Möglichkeit die Bilder im DataGridView in einer einheitlichen Größe anzuzeigen?
Ich lade die Bilder aus der MySQL-Datenbank, die in einem Feldtyp Blob und in der unterschiedlichen Größen gespeichert sind.
mDA = New MySqlDataAdapter(“SELECT name, pic FROM person“, CNN)
mCB = New MySqlCommandBuilder(mDA)
With mCB
.ConflictOption = ConflictOption.OverwriteChanges
.SetAllValues = False
End With
mDT = New DataTable
mDA.Fill(mDT)
mBS = New BindingSource
mBS.DataSource = mDT
DGV.DataSource = mBS
DGV.AutoResizeColumns()
DGV.AutoResizeRows() Die Bilder werden ohne zusätzlichen Einstellungen in voller Größe angezeigt. Wie bringe ich die Anzeige auf eine einheitliche Größe? | |
Re: Bilder in DataGridView in einer einheitlichen Größe anzeigen | | | Autor: martol | Datum: 08.11.11 15:12 |
| ich hab die lösung gefunden:
Dim dgv_ic As DataGridViewImageColumn
'' Column mit bilder finden
For x = 0 To DGV.Columns.Count - 1
If DGV.Columns(x).GetType.ToString.Contains("DataGridViewImageColumn") Then
dgv_ic = CType(DGV.Columns(x), DataGridViewImageColumn)
dgv_ic.Width = 70
End If
Next
'' alle zeilen durchlaufen und ImageLayout einstellen
For i = 0 To DGV.Rows.Count - 1
Dim ic As DataGridViewImageCell = CType(DGV.Rows(i).Cells(1), _
DataGridViewImageCell)
ic.ImageLayout = DataGridViewImageCellLayout.Zoom
Next
Beitrag wurde zuletzt am 08.11.11 um 15:12:58 editiert. | |
Re: Bilder in DataGridView in einer einheitlichen Größe anzeigen | | | Autor: FZelle (Moderator) | Datum: 08.11.11 15:51 |
| Die beiden codes sind jeweils sehr suboptimal.
1. Beim lesen einer DataTable bereits den CommandBuilder anzulegen zeugt davon das der wahrscheinlich woanders verwendet wird, das macht man nicht.
2. Viel einfacher als das ganze Grid durchzuwandern ist es das CellFormatting event zu abonieren. | |
Re: Bilder in DataGridView in einer einheitlichen Größe anzeigen | | | Autor: Manfred X | Datum: 08.11.11 16:10 |
| Ergänzende Anmerkung:
Eventuell mußt Du noch das Seitenverhältnis berücksichtigen,
d.h. ggf. bei unterschiedlichen Width/Height-Relationen der
Bilder in den Zeilen die Größe geeignet umrechnen und eine neue
Bitmap zeichnen?? (falls keine zentriert-gezoomte Darstellung
gewünscht)
MfG
Manfred
Beitrag wurde zuletzt am 08.11.11 um 16:17:05 editiert. | |
Re: Bilder in DataGridView in einer einheitlichen Größe anzeigen | | | Autor: martol | Datum: 09.11.11 11:00 |
| ... hier handelt es um die personenfotos, wo seitenverhältnis immer gleich ist - 3:4.
natürlich wenn es anders ist, muss die Cellen-Höhe auch einheitlich berechnet werden | |
Re: Bilder in DataGridView in einer einheitlichen Größe anzeigen | | | Autor: martol | Datum: 09.11.11 13:34 |
| *zu 1 - einverstanden - hier ist es nicht nötig.
*zu 2 - tatsächlich ist eine bessere lösung. ich habe wie u.a. verwendet:
Private Sub DGV_CellFormatting(ByVal sender As System.Object, ByVal e As _
System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles _
DGV.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 | |
| 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 |
|
|
Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere 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
|
|