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 :

Modifier la couleur d'un DataGridViewButtonColumn


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 263
    Par défaut Modifier la couleur d'un DataGridViewButtonColumn
    Bonjour,
    Dans une application VB.net j’utilise un contrôle DataGridView que je remplis par du code.
    J’ai ajouté une colonne de type DataGridViewButtonColumn et je voudrais pouvoir modifier par programme la couleur de ce bouton ligne par ligne en fonction d’événements extérieurs à la DataGridView.
    Je n’ai pas trouvé comment réaliser cette tâche Merci pour votre aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 598
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 598
    Par défaut
    ça va se faire a priori dans les événements que tu mentionnes, et tu devrais pouvoir accéder via Datagridview1(colonne,ligne) et changer son backcolor (en style Flat)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var buttonCell = (DataGridViewButtonCell)dataGridMappings.Rows[0].Cells[0];
    buttonCell.FlatStyle = FlatStyle.Flat;
    buttonCell.Style.BackColor = System.Drawing.Color.Red;
    https://stackoverflow.com/questions/...agridview-cell

  3. #3
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 323
    Par défaut
    Je pense que tu peux le faire avec ce code que j'ai développé récemment si cela peut te rendre service :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            ' Ajoute DataGridView au formulaire
            Dim dataGridView As New DataGridView()
            dataGridView.Dock = DockStyle.Fill
            Me.Controls.Add(dataGridView)
     
            ' Ajoute des boutons au DataGridView
            Dim buttonColumn As New DataGridViewButtonColumn()
            buttonColumn.Name = "ButtonColumn"
            buttonColumn.HeaderText = "Actions"
            buttonColumn.Text = "Click Me"
            buttonColumn.UseColumnTextForButtonValue = True
            dataGridView.Columns.Add(buttonColumn)
     
            ' 4 lignes de test
            dataGridView.Rows.Add("LigneA")
            dataGridView.Rows.Add("LigneB")
            dataGridView.Rows.Add("LigneC")
            dataGridView.Rows.Add("LigneD
            ' Utiliser CellPainting pour changer l'apparence des boutons
            AddHandler dataGridView.CellPainting, AddressOf DataGridView_CellPainting
        End Sub
     
        Private Sub DataGridView_CellPainting(sender As Object, e As DataGridViewCellPaintingEventArgs)
               If e.ColumnIndex >= 0 AndAlso e.RowIndex >= 0 AndAlso TypeOf e.ColumnIndex Is       DataGridViewButtonColumn Then
     
                ' Change l'apparence du bouton
                e.Paint(e.CellBounds, DataGridViewPaintParts.All)
     
                ' Définissez la couleur de fond du bouton
                Dim buttonRectangle As Rectangle = e.CellBounds
                buttonRectangle.Inflate(-2, -2)
                Using brush As New SolidBrush(Color.Coral)
                    e.Graphics.FillRectangle(brush, buttonRectangle)
                End Using
     
                ' Affiche le texte
                TextRenderer.DrawText(e.Graphics, "Click Me", e.CellStyle.Font, buttonRectangle, e.CellStyle.ForeColor, TextFormatFlags.HorizontalCenter Or TextFormatFlags.VerticalCenter)
     
                ' coloration fini
                e.Handled = True
            End If
        End Sub
    End Class
    A+

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 263
    Par défaut
    Merci Excalybur,
    Ta procédure me convient parfaitement.

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

Discussions similaires

  1. modifier la couleur d'un texte dans un input text
    Par mic79 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 05/01/2005, 17h45
  2. [BP]Borland Pascal : modifier les couleurs par défaut.
    Par Pipoland dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 12/10/2004, 22h32
  3. [JTabbedPane] Modifier la couleur de l'onglet
    Par Pill_S dans le forum Composants
    Réponses: 6
    Dernier message: 17/09/2004, 13h44
  4. [C#] [DataGrid] Modifier la couleur d'une ligne
    Par nalaya dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/08/2004, 13h11
  5. Modifier la couleur de fond d'un popupmenu
    Par lil_jam63 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 05/08/2004, 21h23

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