Sympa74
Messages postés85Date d'inscriptionlundi 25 septembre 2006StatutMembreDernière intervention18 décembre 2008
-
4 oct. 2006 à 08:26
Sympa74
Messages postés85Date d'inscriptionlundi 25 septembre 2006StatutMembreDernière intervention18 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.
cs_GeorgesDeLajungle
Messages postés29Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention22 juin 20071 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...
Sympa74
Messages postés85Date d'inscriptionlundi 25 septembre 2006StatutMembreDernière intervention18 décembre 20081 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.... :-))
Sympa74
Messages postés85Date d'inscriptionlundi 25 septembre 2006StatutMembreDernière intervention18 décembre 20081 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
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 ?