none
data gridview vb 2010 selection tete de colonne RRS feed

  • Question

  • Bonsoir

     toujours dans mon programme je me trouve devant un problème  j’ai un datagridview avec deux rangées et le voudrais  en sélectionnant un cellule avec la souris cliquer sur la tête de colonne correspondant et ouvrir deux listbox différentes j’ai fia tun code qui fonctionne mal pouvez vous m'aider voici mon datagrid et  son code

    merci de votre aide précieuse

    voici le code qui fonctionne mal

       Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
            ListBox1.Visible = True
            t = DataGridView1.Rows(0).Cells.Item(0).Value
            MsgBox("t=" & t)
    
    

    pour le moment on affiche juste la valeur de la cellule sélectionnée avec la souris

    dimanche 31 janvier 2016 00:10

Réponses

  • Bonjour, SIMONGEORGES,

    La cause de l’erreur est cette ligne dans le code de la capture d’écran: For i = 0 To 3 . Testez l’extrait de code ci-dessus (qui contient une boucle de 0 à 1: For i = 0 To 1 ). Or, vous pouvez utiliser DataGridView1.Rows.Count - 2 sans tenir compte du nombre des lignes dans le DataGridView:

        Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
            Dim s As String() = New String(DataGridView1.Rows.Count - 2) {}
            Dim res As String = "t="
            Dim i As Integer
            For i = 0 To DataGridView1.Rows.Count - 2
                s(i) = DataGridView1.Rows(i).Cells.Item(e.ColumnIndex).Value.ToString
                res = res & s(i) & ";"
            Next
            MsgBox(res)
        End Sub

    Cordialement,
    Dimitar

    mardi 2 février 2016 10:40
    Modérateur

Toutes les réponses

  • Bonjour, SIMONGEORGES,

    Pour lire les deux valeurs dans la colonne respective, testez l’extrait du code suivant:

        Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
            Dim s As String() = New String(1) {}
            Dim res As String = "t="
            Dim i As Integer
            For i = 0 To 1
                s(i) = DataGridView1.Rows(i).Cells.Item(e.ColumnIndex).Value.ToString
                res = res & s(i) & ";"
            Next
            MsgBox(res)
        End Sub

    Je vous remercie par avance de votre retour.

    Cordialement,
    Dimitar

    lundi 1 février 2016 13:58
    Modérateur
  • bonsoir déjà merci pour m'avoir répondu je viens de l tester et j’obtiens une erreur voici l'image de mon écran merci encore

    mardi 2 février 2016 01:45
  • Bonjour, SIMONGEORGES,

    Cette erreur survient parce que vous avez deux lignes dans le Datagridview (Rows(0) et Rows(1)). C’est pourquoi je vous invite à utiliser 1 comme la valeur de fin de boucle: For i = 0 To 1.

    Cordialement,
    Dimitar

    mardi 2 février 2016 07:45
    Modérateur
  • bonjour je viens de  tester avec une seule ligne cela ne fonctionne toujours pas même erreur

    j'en suis désolé

    mardi 2 février 2016 09:39
  • Bonjour, SIMONGEORGES,

    La cause de l’erreur est cette ligne dans le code de la capture d’écran: For i = 0 To 3 . Testez l’extrait de code ci-dessus (qui contient une boucle de 0 à 1: For i = 0 To 1 ). Or, vous pouvez utiliser DataGridView1.Rows.Count - 2 sans tenir compte du nombre des lignes dans le DataGridView:

        Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
            Dim s As String() = New String(DataGridView1.Rows.Count - 2) {}
            Dim res As String = "t="
            Dim i As Integer
            For i = 0 To DataGridView1.Rows.Count - 2
                s(i) = DataGridView1.Rows(i).Cells.Item(e.ColumnIndex).Value.ToString
                res = res & s(i) & ";"
            Next
            MsgBox(res)
        End Sub

    Cordialement,
    Dimitar

    mardi 2 février 2016 10:40
    Modérateur
  • un grand merci je vais avancer un peu plus
    mardi 2 février 2016 16:11