Modification de DataGridView en fonction des valeurs de cellule
Bonjour,
Je voudrais modifier l'apparence de certaines cellules en fonction des valeurs récupérées de ma base.
test1-Colorer une cellule.
test2-Remplacer une texte par une image.
J'ai trouvé beaucoup d'exemples et d'explications sur le net.
Là, je me base sur un exemple fourni par MS. Je comprends bien le code et celui-ci semble s'appliquer correctement... jusqu'à un certain point. Et je bloque.
Le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| ' Modifier l'affichage des cellules en fonction de leur valeur
Private Sub dataGridView1_CellFormatting(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) _
Handles DataGridView1.CellFormatting
'*********************************************
' colore la cellule en fonction de sa valeur.
'*********************************************
If DataGridView1.Columns(e.ColumnIndex).Name.Equals("page") Then
'Si le numéro de page < 100 --> On colore la cellule en rouge
If CInt(e.Value) < 100 Then
e.CellStyle.BackColor = Color.Red
e.CellStyle.SelectionBackColor = Color.DarkRed
End If
End If
'**************************************************
' Remplace les valeurs d'une chaine par une image.
'**************************************************
Dim MonIMAGE = New Bitmap("impr.jpg")
If DataGridView1.Columns(e.ColumnIndex).Name.Equals("impr") Then
' On vérifie que la valeur est une chaine
Dim stringValue As String = TryCast(e.Value, String)
If stringValue Is Nothing Then Return
' On place la valeur du texte en ToolTip
Dim cell As DataGridViewCell = _
DataGridView1(e.ColumnIndex, e.RowIndex)
cell.ToolTipText = stringValue
' Remplace la chaine par l'image
Select Case stringValue
Case "ok"
e.Value = MonIMAGE '--> Affiche "System.Drawind.Bitmap" au lieu de l'image
End Select
End If
End Sub |
Pour le test 1, à savoir, colorer la cellule en fonction de sa valeur... Pas de problème.
Par contre, le test 2, l'affichage de l'image ("impr.jpg") en fonction de la valeur de la cellule ("ok") bloque.
Il remplace bien les cellules, mais au lieu de mettre l'image, il m'affiche "System.Drawind.Bitmap"
Si je passe par un icône (MonICONE = New icon("impr.ico")), il m'affiche à la place du "ok", "(icône)"
J'ai placé mes fichiers jpg et ico dans le répertoire de l'application
Qu'ai je oublié, qu'est ce qui bloque ?