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 :

Affecter une image à une cellule d'un datagridview


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2012
    Messages : 16
    Par défaut Affecter une image à une cellule d'un datagridview
    Bonjour,

    J'essaie d'affecter une image à chaque cellule d'un datagridview mais les images ne s'affiche pas

    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
     
    DataGridView7.DataSource = oDataSet.Tables("Calendrier")
    DataGridView7.RowHeadersVisible = False
    DataGridView7.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None
    DataGridView7.RowTemplate.Resizable = DataGridViewTriState.False
     
    Dim colonneImage As New DataGridViewImageColumn
    colonneImage.HeaderText = "Drapeau"
    colonneImage.Width = 100
    colonneImage.ImageLayout = DataGridViewImageCellLayout.Zoom
    DataGridView7.Columns.Add(colonneImage)
     
    For i As Integer = 0 To DataGridView7.Rows.Count - 1
      DataGridView7.Rows(i).Cells("Drapeau").Value = Image.FromFile("Pays\" & oDataSet.Tables("Calendrier").Rows(i).Item("nomPays_e1") & ".png")
    Next
    Mon DataGridView7 est peuplé à partir d'un DataSet, ensuite dans ce DataGridView je désire ajouter une colonne image (DataGridViewImageColumn), cette colonne servira à ajouter les différentes images dont j'irais chercher le chemin (Image.FromFile("Pays\" & oDataSet.Tables("Calendrier").Rows(i).Item("nomPays_e1") & ".png")) pour l'ensemble des enregistrements du dataGridView pour cela j'utilise donc une boucle for mais cela ne fonctionne pas

    La seul chose qui fonctionne c'est lorsque je fais par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    colonneImage.Image = Image.FromFile(chemindeimage)
    à ce moment l'image selectionne s'affiche sur l'ensemble des cellules de la colonne image du datagridview, sauf que ce n'est pas ça que je désire effectuer !!!


    Une solution?

    Merci

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Je pense que tu peux déjà tester si dans ta boucle les chemins sont bon.

    Tu utilises le chemin relatif j'imagine... Essai de récupérer les résultat de ta concaténation, va dans le dossier du programme, et utilise l'adresse, tu verras si il le trouve ou pas. D'ailleurs pour vérifier si le chemin fonctionne, tu pourrais faire, File.Exists(...)

  3. #3
    Membre expérimenté
    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 : 42
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Euh... Il y a bien une surcharge pour accéder à une cellule d'une ligne via le HeaderText de sa colonne ? Cela me semble douteux car rien n'interdit d'avoir deux colonnes alors le même texte en entête... Personnellement, j'accède toujours via le nom (pas l'entête) de la colonne.

    Je ferais donc quelque chose comme ceci. (Je mets en gras mes modifs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim colonneImage As New DataGridViewImageColumn
    colonneImage.Name = "dgvcImg" 
    colonneImage.HeaderText = "Drapeau" 
    colonneImage.Width = 100 
    colonneImage.ImageLayout = DataGridViewImageCellLayout.Zoom 
    DataGridView7.Columns.Add(colonneImage)   
    
    For i As Integer = 0 To DataGridView7.Rows.Count - 1 
          DataGridView7.Rows(i).Cells("dgvcImg").Value = Image.FromFile("Pays\" & oDataSet.Tables("Calendrier").Rows(i).Item("nomPays_e1") & ".png") 
    Next

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/08/2010, 12h41
  2. Ajouter une image à chaque ligne d'un DataGridView
    Par Nadiya dans le forum Windows Forms
    Réponses: 1
    Dernier message: 24/10/2008, 18h30
  3. Affecter le vide à une plage de cellule
    Par eclix3 dans le forum Excel
    Réponses: 3
    Dernier message: 10/01/2008, 16h46
  4. [VBA-E] Affecter un tableau à une plage de cellules, serait-ce possible ?
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/02/2007, 12h59
  5. affecter un nom à une plage de cellule
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 22/11/2006, 10h37

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