Καλησπέρα σε ολους.
Σε ένα datagridView που δείχνει τα αποτελέσματα ενός sql ερωτήματος το οποίο περιέχει εικόνες. π.χ. :
SELECT [ID_Person], [Name], [
Img] FROM [Persons]
Προσπαθώ να βρώ έναν ωραίο τρόπο, ώστε οι εικόνες που δείχνει να γίνονται strech, για να φαίνονται ως μικρογραφίες στο ύψος που επιτρέπει μια φυσιολογική μικρή γραμμή ενός grid.
Για παράδειγμα, όπως με αυτόν τον τρόπο τρέχω μια μια τις στήλες για να κόψω το sort :
1
2
3
4
| foreach (DataGridViewColumn column in dgv.Columns)
{
column.SortMode = DataGridViewColumnSortMode.NotSortable;
} |
Θα βόλευε αν το παραπάνω μπορούσε να επεκταθεί σε :
1
2
3
4
5
| foreach (DataGridViewColumn column in dgv.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; column.ImageLayout = DataGridViewImageCellLayout.Stretch; } |
όμως το
ImageLayout κοκκινίζει γιατί δεν αποτελεί υπαρκτό property.
Άρα πάμε στο αντικέιμενο DataGridView
ImageColumn :
1
2
3
4
| foreach (DataGridViewImageColumn column in dgv.Columns)
{
column.ImageLayout = DataGridViewImageCellLayout.Stretch;
} |
Το οποίο χτυπάει ότι δεν μπορεί να κάνει cast το DataGridViewTextBoxColumn σε DataGridViewImageColumn.
Τελικά κατέληξα στο άσχημο :
1
2
3
4
5
6
7
8
9
| foreach (DataGridViewColumn column in dgv.Columns)
{
if (column.Name == "Img")
{
DataGridViewImageColumn dtgvic = new DataGridViewImageColumn();
dtgvic = (DataGridViewImageColumn) column;
dtgvic.ImageLayout = DataGridViewImageCellLayout.Stretch;
}
} |
Υπαρχει κάποιος καλύτερος τρόπος από τον έλεγχο του ονόματος της στήλης? Π.χ. να ελέγχεται ο τύπος της στήλης ότι είναι εικόνας?
Δοκίμασα με την typeof και την GetType() αλλά δεν κατάφερα γιατί πάλι έχω το θέμα με το cast από το ένα στο άλλο.