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 :
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
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
    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
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 :-/