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

Windows Forms Discussion :

Colorier un bouton dans un datagridview


Sujet :

Windows Forms

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut Colorier un bouton dans un datagridview
    Bonjour,

    J'ai un datagridview avec un bouton mais je n'arrive pas à colorier ce bouton ???

    Pour mettre mon bouton dans le datagridview:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
            Me.DTGV_RECH.Columns.Insert(22, New DataGridViewButtonColumn)
            Me.DTGV_RECH.Columns(22).Name = "LIEN"
            Me.DTGV_RECH.Columns(22).Width = 50
            Me.DTGV_RECH.Columns(22).ValueType = GetType(String)
            Me.DTGV_RECH.Columns(22).Visible = True
            Me.DTGV_RECH.Columns(22).ReadOnly = True
    Comment faire pour le colorier (BackColor)

    D'avance merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    La couleur du bouton peut être changée dans "DefaultCellStyle" de la propriété "Columns" du datagridview. À cet endroit, tu auras la possibilité de changer le backcolor et le forecolor ainsi que le backcolor et le forecolor de la sélection de la case (qu'elle soit un bouton ou autre).

    En code ça va donner quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.DTGV_RECH.Columns(22).DefaultCellStyle.BackColor = ...;

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Merci de ton aide.

    J'ai déjà essayé cela mais c'est uniquement la zone de mon datagridview qui change de couleur mais pas mon bouton

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Points : 560
    Points
    560
    Par défaut
    Bonjour,
    je n'ai jamais essayé de faire ce que tu essayes de faire mais voici quelque chose que j'ai trouvé sur un site, par contre j'ai pas testé et je ne sais pas si ca te donne le résultat espéré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DataGridViewButtonColumn c = (DataGridViewButtonColumn)myGrid.Columns["colFollowUp"];
    c.FlatStyle = FlatStyle.Popup;
    c.DefaultCellStyle.ForeColor = Color.Navy;
    c.DefaultCellStyle.BackColor = Color.Yellow;

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    Salut,
    au pire tu appliques le style directement au Button au niveau de la ligne au moment de l'event RowsAdded et non a la colonne.
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

  6. #6
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    BONJOUR jacko842
    A cause de EnableVisualStyle(StylesVisuel actives dans l'Appli par defaut) les changements apportes au button (dont FlatStyle=Standard par defaut) sont sans effet.
    Change le FlatStyle du button à Popup pour colorier le button.....

    code exemple:
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    Public Class Form2
        Private dt As myData
        Private ListData As List(Of myData) = New List(Of myData)
     
        Public Sub New()
     
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
     
            fillDGV()
        End Sub
        Private Sub fillDGV()
            For i As Integer = 0 To 9
                Me.dt = New myData("Nom" + (i + 1).ToString())
                Me.ListData.Add(dt)
            Next
            Me.AddButtonColumn()
            Me.DataGridView1.DataSource = Me.ListData
        End Sub
     
        Private Sub AddButtonColumn()
            Dim myButton As New DataGridViewButtonColumn()
            With myButton
                .HeaderText = "Ventes"
                .Text = "Ventes"
                .UseColumnTextForButtonValue = True
                .AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
                'a cause de EnableVisualStyle qui est  active change le FlatStyle à Popup
                .FlatStyle = FlatStyle.Popup
                .CellTemplate.Style.BackColor = Color.Gold
                .CellTemplate.Style.ForeColor = Color.Black
                .CellTemplate.Style.SelectionForeColor = Color.WhiteSmoke
                .CellTemplate.Style.SelectionBackColor = Color.Gold
                .CellTemplate.Style.Font = New Font("times new roman", 12, FontStyle.Bold)
                .DisplayIndex = 0
            End With
     
            Me.DataGridView1.Columns.Add(myButton)
     
        End Sub
     
    End Class
    Public Class myData
        Public Sub New(ByVal n As String)
            Me.Name = n
        End Sub
        Private m_Name As String
        Public Property Name() As String
            Get
                Return m_Name
            End Get
            Set(ByVal value As String)
                m_Name = value
            End Set
        End Property
    End Class
    bon code......................

Discussions similaires

  1. [Débutant] Ajouter un bouton dans un DataGridView
    Par Whippet dans le forum C#
    Réponses: 2
    Dernier message: 15/03/2013, 14h46
  2. Changer le text d'un bouton dans un datagridview
    Par Job dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/09/2011, 22h55
  3. Réponses: 1
    Dernier message: 30/03/2011, 16h05
  4. [vb 2008]des boutons dans un DataGridView
    Par thedjinhn dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/11/2008, 14h26
  5. Réponses: 5
    Dernier message: 14/05/2008, 22h19

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