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 :

colorier un datagrid


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yochima
    Profil pro
    Inscrit en
    Août 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 93
    Par défaut colorier un datagrid
    ReBonjour la communautée
    Cela fait un moment que je ne suis pas repassé ici.
    Voici le probleme :
    j'ai une fonction Coloration() qui fonctionne au clic d'un bouton mais pas au chargement de la page.

    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
     
    Private Sub heures_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Rafraichir()
    End Sub
     
    Private Sub Rafraichir()
            'du code pas important ^^
            '.....
            ' Je remplis mon datagrid
            RemplissagePlanning()
            Coloration()
     End Sub
     
    Private Sub Coloration()
            Try
                For i As Integer = 0 To DataGridView1.RowCount - 1
                        For j As Integer = 0 To DataGridView1.Rows(i).Cells.Count - 1
                            DataGridView1.Rows(i).Cells(j).Style.BackColor = Color.Red
                        Next
                Next
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    End Sub
     
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            Coloration()
    End Sub
    A noter que :
    -mon datagrid est bien remplis (avec valeur : 5 lignes + 7 colonnes).
    -lors du load de ma page, j'ai vu en mode debeugage que je parcourais pourtant bel et bien ma fonction Coloration() une seule fois (mais pourtant rien n'est rouge)
    -Lorsque je clique sur bouton 5, mon datagrid devient tout rouge (ce que je cherche à faire)
    -La fonction remplissage planning rempli un datatable, puis je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datagrid.datasource = datatable
    Merci d'avance pour votre aide

  2. #2
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Bonjour,

    Je te conseilles plusieurs solutions à tester :

    • La première tu mets un DataGridView1.Refresh() à la fin de ton sub Rafraichir()
    • Tu met un DataGridView1.Refresh() à la fin de ton Sub Coloration
    • La deuxième tu enlève ton Call Coloration() de ton sub rafraichir et à la fin tu mets Call Button5_Click(sender,e), c'est pas joli joli mais c'est une solution temporaire qui devrait marcher


    Voilà fais tes essais et dis moi si ça marche. A savoir que les 3 solutions sont à mettre en oeuvre distinctement.

    Petit conseil : Egalement, pour plus de clarté dans ton code, quand tu apelle un Sub via un autre Sub, même si l'instruction "Call" n'est pas obligatoire, mets là, cela permet une meilleure visibilité.

  3. #3
    Membre confirmé Avatar de yochima
    Profil pro
    Inscrit en
    Août 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 93
    Par défaut
    Merci pour ta réponse

    Malheureusement aucun des test n'est passé :/

    il n'y a rien a faire, rien ne se colorie au Load de la page ... Pourtant c'est pas la premiere fois que je fais ça.
    ça doit venir de la maniere dont je remplis mon datagrid (car premiere fois que je le fais comme ça)

    une autre idée?
    n'y a-t-il pas un soucis avec l'initialisation des composant d'une form et leur affichage? Je vais tester sur cette piste en attendant

    ++

  4. #4
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Mets peut-être plus de code, à savoir comment tu remplis ton DGV et comment tu l'initialises.

  5. #5
    Membre confirmé Avatar de yochima
    Profil pro
    Inscrit en
    Août 2009
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 93
    Par défaut
    je vais essayer d'envoyer le plus simple possible :

    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
     
    Private Sub RemplissageSemaine()
            table = New DataTable
     
            table.Columns.Add("Ouvriers", Type.GetType("System.String"))
            table.Columns.Add("ID_UNIQUE", Type.GetType("System.String"))
            table.Columns.Add("TYPE", Type.GetType("System.String"))
     
            For i As Integer = 1 To 7
                'je créé mes colonnes
            Next
     
            strSql = "Ma requete"
            ObjetCommand = New OleDbCommand(strSql, main.MyConnexion)
            ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
            ObjetDataSet = New DataSet
            ObjetDataAdapter.Fill(ObjetDataSet)
     
            'je remplis mes ligne du datatable
            For i As Integer = 0 To ObjetDataSet.Tables(0).Rows.Count - 1
                Dim row As DataRow
                row = table.NewRow()
                row("Ouvriers") = ObjetDataSet.Tables(0).Rows(i).Item("C_LIBELLE").ToString
                'etc...
                table.Rows.Add(row)
            Next
     
     
            DataGridView1.DataSource = table
    End Sub

    voila j'ai simplifié au max en laissant la maniere de remplir le datagrid

  6. #6
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    J'avoue que je sèche c'est vraiment bizarre que cela fonctionne sur le click du bouton, mais pas quand tu call le bouton par le code ...

    Au passage, Remplissage_Planning() et Remplissage_Semaine(), c'est pas la même chose chez moi.

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

Discussions similaires

  1. comment colorier des lignes d'un datagrid?
    Par abouilyas dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 14/04/2010, 18h01
  2. Colorier une ligne de datagrid
    Par mactwist69 dans le forum Windows Mobile
    Réponses: 0
    Dernier message: 09/05/2009, 16h27
  3. [VB.NET] Colorier Row du DataGrid
    Par calison3 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 15/02/2006, 16h17
  4. [VB.NET]Colorier l'en-tête d'une colonne d'un DataGrid
    Par San Soussy dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/12/2004, 17h08
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

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