Remplir les cellules de datagrid une par une

saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 novembre 2011 - 10 mai 2011 à 17:14
ccito Messages postés 67 Date d'inscription mercredi 5 mai 2010 Statut Membre Dernière intervention 20 mai 2011 - 16 mai 2011 à 12:45
salut,
jai un datagrid que je veut la remplir cellule par cellules
j'ai ecrit le code suivant pour verifier si c'est possible:
For i = 0 To 6
For j = 0 To 6

DataGridView1.Item(i, i).Value = i+j
Next
Next
mais ce code n'est pas excutable il m'affiche l'erreur suivant:
pour L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index
est ce que quelq'un peut m'aider?
merci d'avance.

10 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 mai 2011 à 18:34
Salut

Es-tu sûr que les colonnes et lignes soient numérotées à partir de 0 dans un DataGrid ?

Es-tu sûr que ton DataGrid contienne 7 colonnes et 7 lignes ?

Item(i, i)
serait plutôt
Item(i, j)
non ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 novembre 2011
11 mai 2011 à 12:37
salut
oui vous avez raison concernant item(i,i) c'est plutot item(i,j). mais c'est pas là le probleme. j'ai telechargé un cour vb.net dans lequel je trouve le code suivant:
datagrid.item(_,_).value=... ça veut dire qu'on peut enforcer à une cellule particulière de prendre un tel valeur ou donnée alors qu'à l'execution chez moi il m'affiche le msg d'erreur que je vous ai indiqué cidessus.
meme si j'enleve les boucles et je met seulement datagridview1.item(1,1)= 1
le meme msg sera affiché
où est donc le probleme ?
0
ccito Messages postés 67 Date d'inscription mercredi 5 mai 2010 Statut Membre Dernière intervention 20 mai 2011 1
11 mai 2011 à 12:57
Bonjour,

Ne faut-il pas utiliser la fonction datagridview1.rows.Add() afin d'ajouter une ligne au datagridview ? Ensuite tu pourras remplir la case.
0
saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 novembre 2011
11 mai 2011 à 13:47
bonjour et merci pour l'aide
l'ajout de : datagridview1.rows.add()me permet d'avoir une resultat mais pas de la resoudre . ma probleme c'est comment specifier la case en fonction de i et j . je veut que ça sera automatique c'est à dira à la place d'ecrire

datagridview1.item(0,1).value=...
datagridview1.item(0,2).value=....
datagridview1.item(1,1).value=...
...
j'ecrit par exemple datagridview1(i,j)=....., et en fonction de i et j la cellule se change
est ce que quelqu'un peut m'aider.
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccito Messages postés 67 Date d'inscription mercredi 5 mai 2010 Statut Membre Dernière intervention 20 mai 2011 1
11 mai 2011 à 20:38
Bonjour,

La syntaxe doit plutot être DataGridView1.Rows(i).Cells(j).
0
ccito Messages postés 67 Date d'inscription mercredi 5 mai 2010 Statut Membre Dernière intervention 20 mai 2011 1
11 mai 2011 à 20:44
.value=...

désolé, j'ai envoyé trop vite
0
saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 novembre 2011
13 mai 2011 à 11:29
salut
j'ai essayé avec datagridview.row(i).cells(j).value=...
mais c'est toujours le meme message qui s'apparu:L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index.
0
ccito Messages postés 67 Date d'inscription mercredi 5 mai 2010 Statut Membre Dernière intervention 20 mai 2011 1
14 mai 2011 à 17:16
Peut-tu détailler ton Datagridview. Combien de ligne et combien de colonnes ?
0
saadouli7 Messages postés 36 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 18 novembre 2011
14 mai 2011 à 18:52
salut
j'ai juste déclaré une datagrid qui est vide au début
et je veut la remlir d'une façon automatique comme je l'ai montré dans mon code
0
ccito Messages postés 67 Date d'inscription mercredi 5 mai 2010 Statut Membre Dernière intervention 20 mai 2011 1
16 mai 2011 à 12:45
Salut,

Si ton datagrid est vide il faut d'abord que tu ajoute les colonnes et les lignes avant de le remplir. Tu ne peux pas remplir un emplacement qui n'existe pas (d'où ton message de défaut).

Tu peut faire quelque chose comme :

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For i = 0 To 6
            DataGridView1.Columns.Add("c" & i, "c" & i)
        Next
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        For i = 0 To 6
            For j = 0 To 6
                If DataGridView1.Rows.Count < i + 2 Then
                    DataGridView1.Rows.Add()
                End If

                DataGridView1.Item(j, i).Value = i + j
            Next
        Next
    End Sub
End Class
0
Rejoignez-nous