Remplir DataGridView [Résolu]

Signaler
Messages postés
120
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
21 novembre 2013
-
Messages postés
120
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
21 novembre 2013
-
Bonjour à tous !

J'ai besoin d'aide. J'ai une application qui a deux forms (form2 et 3). Dans Form2 j'ai un dataGridView, que je remplis avec les données de form3 à partir d'un  clic sur bouton .
Mon problème c'est que je n'arrive pas à aller à la ligne suivante pour copier les nouvelles saisie sur form3 (Les nouvelles données prennent la place des précédantes dans Grid, finalement j'ai une seule ligne)

Voici le code sur Form2

Me.Controls.Add(MyDataGridView)MyDataGridView.ColumnCount = 7

With MyDataGridView
' .remWith(MyDataGridView).Name "MyDataGridView".Location
New Point(8, 8).Size New Size(500, 250).AutoSizeRowsMode DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders

.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single

.CellBorderStyle = DataGridViewCellBorderStyle.Single

.GridColor = Color.Black

.RowHeadersVisible =

False
'On donne le nom des colonnes.Columns(0).Name "Date".Columns(1).Name
"Especes".Columns(2).Name "Nombre".Columns(3).Name
"Latitude".Columns(4).Name "Longitude".Columns(5).Name

"PDOP".Columns(6).Name =

"Observateur"

.Columns(4).DefaultCellStyle.Font =
New Font(
Me.MyDataGridView.DefaultCellStyle.Font, FontStyle.Italic).SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect False.Dock DockStyle.Fill

End
With

'Création d'un tableau de 5 strings pour chaque ligne

Dim row0
As
String() = {Form3.lbl1.Text, Form3.lbl2.Text, Form3.lbl3.Text, Form3.lbl4.Text, Form3.lbl5.Text, Form3.lbl6.Text, Form3.lbl7.Text}

Me.MyDataGridView.Rows.Add(row0)

Merci pour votre aide !

_______________________________________________________________________________________________
" Celui qui croit savoir quelque chose ne l'a pas encore connue dans sa totalité "

5 réponses

Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Une dataTable est simplement une varable :
Dim MaTable As new System.Data.DataTable() 'Tu peut aussi donnée un nom à ta table

Pour crée une ligne tu fait
Dim MaLigne As System.Data.DataRow

MaLigne = MaTable.Rows.NewRow

Ensuite tu rempli la ligne de données puis tu l'insert dans ta table :
MaTable.Rows.Add(MaLigne)

Pour ajouté encore une ligne il me semble qu'il faut re-faire
MaLigne = MaTable.Rows.NewRow
Mais j'ai un doute fait des tests

Amicalement
Pensez "Réponse acceptée"
Messages postés
1098
Date d'inscription
mercredi 22 mars 2006
Statut
Membre
Dernière intervention
22 octobre 2019

Bonjour ,

Je pense que le problème viens du faite que (à moin que je ne me trompe) tu execute l'ensemble de la procédure que tu à posté pour insérer une nouvelle ligne dans ton datagridview. (Perso je ferais plutôt une datatable et la placerais en temps que source de données de mon datagridview mais là c'est toi qui voie )

Je pense qu'il faudrais que tu fasse une procédure de config de ta datagridview et une autre y insérant des données. QSoit une truc du genre :
Public Sub MiseEnPageDataGridView()
Me.Controls.Add(MyDataGridView)MyDataGridView.ColumnCount = 7

With MyDataGridView' .remWith(MyDataGridView).Name "MyDataGridView".Location
New Point(8, 8).Size New Size(500, 250).AutoSizeRowsMode DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders

.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single

.CellBorderStyle = DataGridViewCellBorderStyle.Single

.GridColor = Color.Black
.RowHeadersVisible False'On donne le nom des colonnes.Columns(0).Name
"Date".Columns(1).Name "Especes".Columns(2).Name
"Nombre".Columns(3).Name "Latitude".Columns(4).Name
"Longitude".Columns(5).Name "PDOP".Columns(6).Name

"Observateur".Columns(4).DefaultCellStyle.Font =
New Font(
Me.MyDataGridView.DefaultCellStyle.Font, FontStyle.Italic).SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect False.Dock DockStyle.Fill

EndWith
End Sub

public sub InsertData()
Dim row0
AsString() = {Form3.lbl1.Text, Form3.lbl2.Text, Form3.lbl3.Text, Form3.lbl4.Text, Form3.lbl5.Text, Form3.lbl6.Text, Form3.lbl7.Text}
Me.MyDataGridView.Rows.Add(row0)

endsub

Si non en passant par une datatable tu à une procédure "newrow" (dans rows je crois) qui renvoie une datarow sue tu remplie puis ajoute avec Rows.Add

Bonne prog
Amicalement
Pensez "Réponse acceptée"
Messages postés
120
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
21 novembre 2013

Comment créer le datatable ?

" Celui qui croit savoir quelque chose ne l'a pas encore connue dans sa totalité "
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
j'ai pas tout lu mais essaie  
datagridview.rows.add( machin, a, ajouter)

bonjour chez vous!
< body>
Messages postés
120
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
21 novembre 2013

Merci, je pense que c'est plus simple ainsi !

" Celui qui croit savoir quelque chose ne l'a pas encore connue dans sa totalité "