Hello,
Dernièrement, je voulais ajouter une image dans une colonne d'un datagridview pour certaines lignes suivant que la propriété Attachment d'une classe custom est vide ou pas.
Pas de souci pour afficher l'image mais par contre, ça clignote et le formulaire s'affiche au compte goutte...
Ici la définition des colonnes du datagridview :
Et ici, la partie qui affiche l'image ou non :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Private Sub InitDGV() dgvOwn.AutoGenerateColumns = False dgvOwn.Columns.Clear() Dim index As Integer With dgvOwn Dim dgvc As New DataGridViewImageColumn(False) dgvc.Name = "dgvcAttachIcon" dgvc.HeaderText = "" 'dgvc.Image = My.Resources.attach dgvc.ImageLayout = DataGridViewImageCellLayout.Zoom index = .Columns.Add(dgvc) index = .Columns.Add("dgvcAttach", "Attachment") .Columns(index).DataPropertyName = "Attachment" .Columns(index).Visible = False 'et quelques autres colonnes, je ne laisse que celles pertinentes pour ce problèmes 'la colonne dgvcAttachIcon sert à afficher l'image tandis que la colonne dgvcAttach me sert à savoir s'il faut afficher l'image ou pas. End With End Sub
Cela me semblait clair et propre mais ce n'est apparemment pas le cas vu que ça clignote... Ou alors ce n'est pas la bonne manière de faire... Évidemment, les exemples sur le net ne sont pas super nombreux :-/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub dgvDemo_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles dgvOwn.CellFormatting, dgvOwn.CellFormatting If CType(dgvOwn.Rows(e.RowIndex).Cells("dgvcAttach").Value, PROMO_DTO.Attachment).Path.Trim = "" Then dgvOwn.Rows(e.RowIndex).Cells("dgvcAttachIcon").Style.NullValue = Nothing 'ceci permet de ne pas afficher l'image d'erreur qui s'affiche lorsqu'il n'y a pas d'image Else dgvOwn.Rows(e.RowIndex).Cells("dgvcAttachIcon").Value = My.Resources.attach End If End Sub
Partager