Deux gridview [Résolu]

Signaler
Messages postés
8
Date d'inscription
vendredi 15 juillet 2016
Statut
Membre
Dernière intervention
15 août 2016
-
Messages postés
8
Date d'inscription
vendredi 15 juillet 2016
Statut
Membre
Dernière intervention
15 août 2016
-
Bonjour,
je travaille avec un gridview sur un formulaire Windows et je souhaite que la ligne sélectionnée sur ce dernier soit sélectionnée sur un autre gridview dans un autre formulaire
les deux grid affichent les données de la mêmes tables
Merci

3 réponses

Messages postés
7420
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 juin 2021
124
Bonjour,

Voir ceci :

http://plasserre.developpez.com/cours/vb-net/?page=ui-winforms5#LVIII-Q-2

Voici un exemple avec un Form1 et un Form2.

Allez dans Projet dans le menu et ajouter un Module, mettre dans ce module:

Module Module1
    Public ligne As Integer
End Module


Dans le code du Form1 avec un Datagridview nommé :

DataGridView1 mettre ce code:

Private Sub DataGridView1_CellContentClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        Dim y As Integer = DataGridView1.CurrentCellAddress.Y
        ligne = y
        Form2.Show()
        Form2.DataGridView1.Rows(ligne).Selected = True
    End Sub


il est entendu que le Datagridview se nomme: DataGridView1 dans le Form2 également.

Sinon à adapter

Pour plus de renseignements voir le lien

Voilà
Messages postés
16037
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2021
551
Bonjour, il parle de Window et de Gridview, il travaille peut être en wpf, la syntaxe sera alors sensiblement différente.
Messages postés
8
Date d'inscription
vendredi 15 juillet 2016
Statut
Membre
Dernière intervention
15 août 2016

Bonjour;
je vous remercie pour vos réponses j'ai fait un sub change
sub change
ligne = y
Form2.Show()
Form2.DataGridView1.Rows(ligne).Selected = True
end sub
et je l'appel appartir des boutons de déplacement et ça marche qui figure dans le form2 mais réagissent sur le grid du form1

je ne peut pas le faire au moment des Evénements DataGridView1_CellContentClick ou DataGridView1_selectionchanged

car çà marche pas


maintenant mon seule problème et comment afficher les mêmes contenus dans les deux datagrid au moment du load du form2 ?l es deux grid affichent le même dataset mais si je fait une recherche et je l'affiche dans le grid du form1 comment faire pour afficher le même contenue dans le grid du form2 ?? Merci d'avance
Messages postés
8
Date d'inscription
vendredi 15 juillet 2016
Statut
Membre
Dernière intervention
15 août 2016

je viens d'essayais form1.datagridview=form2.datagridview est je vois que ca marché mais le bouton de déplacement "précédent" affiche une erreur

voici le code si vous pouvez me corriger

Private Sub PictureBox3_Click(sender As Object, e As EventArgs) Handles PictureBox3.Click
Try

Dim prevRowNum As Integer = (photos1.MetroGrid1.Rows.Count 0)

Dim curDataGridViewRow As DataGridViewRow = photos1.MetroGrid1.CurrentRow

Dim curRowNum As Integer = curDataGridViewRow.Index

If (curRowNum >= prevRowNum) Then

MsgBox("No more rows")

Else

Dim nextRow As DataGridViewRow = photos1.MetroGrid1.Rows(curRowNum - 1)

photos1.MetroGrid1.CurrentCell = nextRow.Cells(0)

nextRow.Selected = True

charng()

End If


Me.StartPosition = FormStartPosition.CenterParent


PictureBox1.Location = New Point((Screen.PrimaryScreen.WorkingArea.Width - PictureBox1.Width) / 2, (Screen.PrimaryScreen.WorkingArea.Height - PictureBox1.Height) / 2)
Me.WindowState = FormWindowState.Maximized

Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub




je crois que le problème figure dans cette ligne

pour définir la 1er ligne du grid et puis vérifier s il nya plus de ligne en haut

Dim prevRowNum As Integer = (photos1.MetroGrid1.Rows.Count 0)
Messages postés
7420
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 juin 2021
124
Ce code n'a rien avoir avec les données transférées d'un DataGridView à un autre!

Voici le code qui fonctionne à l'ouverture du Form2 pour transférer les données:

Public Class Form2
    Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Dim targetGrid As DataGridView = Me.DataGridView1

        'Copy all rows and cells.

        Dim targetRows = New List(Of DataGridViewRow)

        For Each sourceRow As DataGridViewRow In Form1.DataGridView1.Rows

            If (Not sourceRow.IsNewRow) Then

                Dim targetRow = CType(sourceRow.Clone(), DataGridViewRow)

                'The Clone method do not copy the cell values so we must do this manually.
                'See: https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewrow.clone(v=vs.110).aspx

                For Each cell As DataGridViewCell In sourceRow.Cells
                    targetRow.Cells(cell.ColumnIndex).Value = cell.Value
                Next

                targetRows.Add(targetRow)

            End If

        Next

        'Clear target columns and then clone all source columns.

        targetGrid.Columns.Clear()

        For Each column As DataGridViewColumn In Form1.DataGridView1.Columns
            targetGrid.Columns.Add(CType(column.Clone(), DataGridViewColumn))
        Next

        'It's recommended to use the AddRange method (if available)
        'when adding multiple items to a collection.

        targetGrid.Rows.AddRange(targetRows.ToArray())
        Me.DataGridView1.MultiSelect = False
    End Sub
End Class

Messages postés
8
Date d'inscription
vendredi 15 juillet 2016
Statut
Membre
Dernière intervention
15 août 2016

bonjour,

Je vous remercie cs_Le Pivert pour les réponses ça marché çà été vraiment utile
Messages postés
2429
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
1 juin 2021
137
bonjour
Pense à mettre ce sujet en Résolu
Merci
Messages postés
8
Date d'inscription
vendredi 15 juillet 2016
Statut
Membre
Dernière intervention
15 août 2016

vb95

c fait