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 :

Incrémenter ligne d'un DataGridView


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Par défaut Incrémenter ligne d'un DataGridView
    Bonjour,

    N'étant qu'un novice en programmation, j'aurais besoin de votre aide :

    Je possède un contrôle DataGridView qui est censé recueillir toutes les valeurs des variables x et y. Le problème c'est que je n'arrive pas incrémenter le numéro de chaque ligne pour chaque variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For x = 0 To 799
                    For y = 0 To 532
                                    DataGridView1.RowCount = 801
                                    DataGridView1.Rows(i).Cells(0).Value = (x)
                                    DataGridView1.Rows(i).Cells(1).Value = (y)
                    Next
                Next
    Avez-vous des idées?

    D'avance merci

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Par défaut
    Tu n'as pas besoin de parenthèses autour de x et y.
    Le problème c'est que tu n'incrémente pas i et on ne sait pas ce que c'est dans ton exemple.
    Remplace ton i par DataGridView1.Rows.Count, ton problème devrait être résolu

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Par défaut
    Merci de m'avoir répondu!

    Malheureusement, je ne suis pas arrivé à résoudre le problème :
    L'index était hors limite
    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
     For Each fichier As String In Directory.GetFiles(myDir)
                PictureBox1.Image = Image.FromFile(fichier)
                image1 = PictureBox1.Image
                For x = 0 To 799
                    For y = 0 To 532
                        myColor = image1.GetPixel(x, y)
                        ' Définition des seuils de tolérance RGB
                        If myColor.B < 75 Then
                            If myColor.R < 75 Then
                                If myColor.G < 75 Then
     
                                    ' Affichage de 21 lignes
                                    DataGridView1.RowCount = 21
     
                                    ' Remplissage de la colonne X
                                    DataGridView1.Rows(DataGridView1.Rows.Count).Cells(0).Value = x
     
                                    ' Remplissage de la colonne Y
                                    DataGridView1.Rows(DataGridView1.Rows.Count).Cells(1).Value = y
     
                                End If
                            End If
                        End If
                    Next
                Next
            Next
    Voici mon code plus complet. En fait il s'agit d'une application capable de détecter les coordonnées d'un pixel noir pour plusieurs images. L'affaire devient plus difficile lorsque je veux, pour chaque image, renseigner le DataGridView automatiquement.

    Avez-vous des idées?

    D'avance merci

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Par défaut
    effectivement tu n'increment pas i, donc tu reste bloqué sur i = 0


    je te propose cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim i As Integer
            For x = 0 To 799
                i = x
                For y = 0 To 532
     
                    'DataGridView1.RowCount = 801
                    DataGridView1.Rows(i).Cells(0).Value = x
                    DataGridView1.Rows(i).Cells(1).Value = y
                    ' créer la ligne dans don datagridview
                    DataGridView1.Rows.Add(x)
     
                Next
            Next
    le probleme c'est que tu va te retrouver avec 799*532 = Beaucoup de lignes

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 6
    Par défaut
    En fait non! Sur mon dernier code, j'ai mis des tolérances RGB pour détecter uniquement les pixels noirs ou s'approchant du noir. En fait dans chaque image j'ai juste besoin des coordonnées du pixel noir extrême en x pour remplir chaque ligne du tableau.

    Ex : s'il y a 20 images, il y aura 20 coordonnées en x donc 20 lignes

    Désolé si ce n'est pas clair!

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Par défaut
    Pour améliorer les performances et la lisisbilité de ton code utilise plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If myColor.B < 75 AndAlso myColor.R < 75 AndAlso myColor.G < 75 Then
    End If

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

Discussions similaires

  1. [C#]Sélectionner une ligne dans un datagridview
    Par padodanle51 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/03/2013, 09h04
  2. [C# 2.0] Séléction de lignes dans un datagridview
    Par bootix dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/07/2006, 11h26
  3. [C#][VS 2005]Changer la couleur d'une ligne dans un DataGridView
    Par Mast3rMind dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/07/2006, 23h20
  4. [VB 2005] Supprimer toutes les lignes d'un DataGridView
    Par Bob Langlade dans le forum Windows Forms
    Réponses: 4
    Dernier message: 25/01/2006, 16h03
  5. Incrémenter lignes d'un tableau
    Par skea dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/01/2005, 11h12

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