IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

DataGridViewImageColumn et événement CellFormating --> clignotement ?


Sujet :

VB.NET

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut DataGridViewImageColumn et événement CellFormating --> clignotement ?
    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 :-/
    Kropernic

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Résolu en modifiant l'événement CelleFormatting comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        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
                If e.ColumnIndex = 0 Then
                    dgvOwn.Rows(e.RowIndex).Cells("dgvcAttachIcon").Style.NullValue = Nothing
                End If
            Else
                If e.ColumnIndex = 0 Then
                    e.Value = My.Resources.attach
                End If
            End If
        End Sub
    Ca oblige à faire un test de plus mais au moins, ça ne clignote plus
    Kropernic

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pas d'événement OnClose quand on arrête W2K
    Par Altau dans le forum C++Builder
    Réponses: 9
    Dernier message: 26/01/2009, 18h36
  2. exploiter un évènement d'un sous composant dans un
    Par bjl dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/12/2002, 16h44
  3. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  4. Help :Problème de clignotement
    Par LE CHAKAL dans le forum Composants VCL
    Réponses: 6
    Dernier message: 14/08/2002, 10h53
  5. Redéfinir l'événement OnExit de mon composant TEditFloat
    Par Seb des Monts dans le forum C++Builder
    Réponses: 5
    Dernier message: 18/06/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo