Datagridview récupérer la valeur d'une colonne

Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 - 4 oct. 2006 à 08:26
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 - 4 oct. 2006 à 14:47
Bonjour à tous,

Vu ma question... inutile de vous rappeler que je suis débutant...

Voila mon problème...
J'ai dans un datagridview un certain nombre de colonnes qui proviennent d'un fichier "clients" qui est un .txt avec champs délimités.
J'affiche donc une liste de ces clients avec les différents champs dans les différentes colonnes. (Jusque là pas de soucis).

La première colonne affiche le numéro de ligne du fichier txt ou se trouve l'enregistrement.
Ce que j'aimerai c'est pouvoir récupérer automatiquement la valeur de cette colonne, c'est à dire la ou est positionné le curseur, de manière à pouvoir afficher dans un formulaire la fiche client complète. (il y a un formulaire exprès pour cela).

Actuellemetn toute la procédure fonctionne... le seul hic... c'est que je suis obligé de saisir manuellement dans un textbox le n° de la ligne (justement parce que j'ai pas encore trouvé comment faire autrement..; voila ma question.)

Pour mieux comprendre.... voila quelques extraits du code actuel. (qu'il faut donc que je modifie pour que ca marche d'une manière automatique)

Affichage de la liste des clients dans le datagridview :
==================================
Public Class listeclients

    Private Sub listeclients_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '// OUVERTURE DU FICHIER CLIENTS
        ' définitiion du délimiteur de champ

        Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser _
        ("C:\GESINAT\GESCLI\bd_clients.dat")
            MyReader.TextFieldType = FileIO.FieldType.Delimited
            MyReader.SetDelimiters("¤") 'affichage du délimiteur de champ

            Dim ligne As String()
            Dim count As Integer = 0
            Dim position As Integer = 0

            Dim I As Integer ' variable du nombre de champs dans une ligne d'enregistrement
            Dim s(0 To 36) As String ' initialisation du tableau qui va recevoir les champs
            DataGridView1.ColumnCount = 36 'nombre de colonnes dans le datagrid

            While Not MyReader.EndOfData
                Try
                    ligne = MyReader.ReadFields()
                    count = count + 1 ' count compte les lignes physiques du fichier txt (bd_clients.dat)
                    I = 0
                    Dim champ As String
                    For Each champ In ligne
                        I = I + 1
                        s(I) = champ
                    Next
                    DataGridView1.Rows.Add(New String() {count, s(1), s(2), s(3), s(4), s(5), _
                    s(6), s(7), s(8), s(9), s(10), s(11), s(12), s(13), s(14), s(15), s(16), s(17), s(18), s(19), s(20), s(21), s(22), s(23), s(24), s(25), s(26), s(27), s(28), s(29), s(30), s(31), s(32), s(33), s(34), s(35)})
                    'compteur.Text = CStr(count)

                Catch ex As Exception
                End Try
            End While

        End Using

    End Sub

Donc ce que je veux c'est pouvoir récupérer la valeur de count de n'importe quelle ligne du datagridview sur lequel je suis positionné de manière à ce que le click sur le bouton "afficher la fiche complète du client" puisse effectivement l'ouvrir.

Voila donc.. si vous pouviez me dire comment je fais ca m'aiderait beaucoup.

Philippe - Sympa 74
 

3 réponses

cs_GeorgesDeLajungle Messages postés 29 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 22 juin 2007 1
4 oct. 2006 à 13:43
Bonjour,
S'il te faut récupérer la valeur de la cellule indicée 0 de la ligne courante,
tu peux le faire avec quelque chose comme
    dim numero as string
    numero = datagridview1.rows(datagridview1.currentcell.rowindex).cells(0).value
ensuite à toi de savoir ce que tu veux en faire...

Eric
1
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 1
4 oct. 2006 à 14:43
Bonjour Eric,

Merci IN FI NI MENT pour ta réponse rapide et efficace.
C'est exactement ce que je voulais et donc CA MARCHE. Me voici un débutant heureux... au moins jusqu'au prochain problème.... :-))

Philippe - Sympa 74
 
0
Sympa74 Messages postés 85 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 18 décembre 2008 1
4 oct. 2006 à 14:47
Question subsidiaire...

Le code que tu m'as indiqué fonctionne donc parfaitement bien puisque j'ai indiqué dans la procédure du bouton qui sert à afficher la fiche complète du client :

Private Sub Bu_afficherclient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bu_afficherclient.Click

        numvisucli = DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(0).Value
        numvisucli = numvisucli - 1

        VisuCli.ShowDialog()

    End Sub

mais si je voulais (pour simplifier l'esthétique) remplacer le bouton par un double clic sur la ligne sélectionner... il faudrait que j'écrive quoi comme code  ?

Philippe - Sympa 74
 
0
Rejoignez-nous