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

C# Discussion :

DATAGRIDVIEW COLONNE BOUTTON IMAGE


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Par défaut DATAGRIDVIEW COLONNE BOUTTON IMAGE
    Bonjour,

    Je souhaiterais avoir une colonne dans un datagridview de type datagridviewbutoncoulmn et ajouter une image sur chaque bouton de chaque ligne.

    J'ai vu sur le net cette question posée plusieurs fois. J'ai vu également qu'il fallait apparement passer par l'événement "CellFormating".

    J'aimerais s'il vous p laît avoir une méthode très simple.

    Merci à tous.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Par défaut
    Salut,

    Ce que tu cherches est à priori pas mal documenté donc tu devrait pouvoir trouver facilement.

    Quel problème particulier rencontres tu ?

    Voici malgré tout un petit bout de code ....

    à Insérer à l'endroit ou tu créé ou initialise ton DateGridView :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DataGridViewButtonColumn colonneBouton = new DataGridViewButtonColumn();
    colonneBouton.Width = 200;
    colonneBouton.FlatStyle = FlatStyle.Flat;
    colonneBouton.HeaderText = "Button";
    colonneBouton.Name = "Button";
    colonneBouton.UseColumnTextForButtonValue = true;
    colonneBouton.Text = "New";
    maGrid.Columns.Insert(maGrid.Columns.Count, colonneBouton);
    Puis l'évènement CellPainting :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for (int cpt = 0; cpt < maGrid.Rows.Count; cpt++)
    {
    <div style="margin-left:40px">try
    {
    <div style="margin-left:40px">Button lBouton = new Button();
    lBouton.Text = "texte du bouton";
    maGrid.Rows[cpt].Cells[maGrid.Columns.Count].Value = lBouton;</div>
    }
    catch
    { }</div>}
    Puis après si tu veut exécuter quelque chose lors du clic sur ton bouton, il y a l'évènement CellContentClick dans lequel tu peut faire un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (e.ColumnIndex == maGrid.Columns.Count-1)
                {
                    //MessageBox.Show(string.Format("clic sur le bouton pour  {0}",maGrid.Rows[e.RowIndex].Cells[2].Value.ToString()));
                }
    Après il y a peut d'être d'autres solutions .... mais celle ci fonctionne.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Par défaut
    Bonjour et merci pour ta réponse.

    J'arrive à afficher un boutton dans ma colonne mais le boutton n'as pas d'image et c'est ce que je souhaite faire.

    D'ailleurs la colonne contenant les boutons est ajouté via le designer.

    Donc quelle est la meilleure solution pour que ce boutton ait une image?

    Merci.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Par défaut
    ben à bas le designer ....

    Si tu suis la méthode que je te propose, il suffit juste de définir dans le CellPainting l'image que tu veut associer à ton bouton et le tour est joué ....

    Je ne vois pas ou tu bloques....as tu u code à montrer ?

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2012
    Messages : 44
    Par défaut
    Alors pour récapituler :

    - via le designer je créer une colonne de type datagridviewcolumnbuton.
    -Ensuite dans mon code je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private Button BtnSupp = new Button();
    BtnSupp.Text = "";
    BtnSupp.Image = Resources.delete;
    BtnSupp.Size = new System.Drawing.Size(22, 22);
    et ensuite lorsque je veux ajouter une ligne dans mon datagrid je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mondatagrid.Rows.Add(BtnSupp, "", "");
    3 champs car le datagrid possède 3 colonnes.

    ps: je rapelle que le boutton s'affiche mais sans l'image. il y a marqué à la place "system.Windows.forms.buton"

    Merci pour ton aide.

  6. #6
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    Tu change ajouter la propriété backgroundimage a la de DataGridViewButtonColumn
    Ou tu peux voir cet exemple

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/09/2007, 09h51
  2. [VB.NET] Datagridview + colonne
    Par olbi dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/10/2006, 10h37
  3. boutton image ?
    Par nawfal007 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 18/09/2006, 17h34
  4. Réponses: 3
    Dernier message: 16/05/2006, 14h47
  5. [C#][.Net2][DataGridView]Colonne perso
    Par vincent.e dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/01/2006, 16h48

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