IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Repositionnement du curseur dans un Datagridview


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Points : 98
    Points
    98
    Par défaut Repositionnement du curseur dans un Datagridview
    Bonjour à tous,

    J'ai un form qui contient un ServiceDataGriView lié à une base de données access.
    Lorsque je fais une nouvelle saisie, j'utilise la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ServicebindingSource.DataSource.Row.Add(New Object() {..........})
    ServicebindingSource.Position = ServicebindingSource.Count -1
    ServicedataAdapter.Update(CType(ServicebindingSource.DataSource, DataTable))
    GetData_Service(ServicedataAdapter.SelectCommand.CommandText)
    A ce moment, le curseur du tableau se place sur la dernière ligne car si j'ai bien compris, elle est lié au ServicebindingSource et que je suppose la deuxième ligne de mon code fait que le curseur va se positionner à la dernière ligne.
    Et si mon tableau est grand, je ne verrais plus que le bas du tableau alors que ce que j'ai saisis peut se retrouver sur la 3ème ligne du haut dans mon tableau ...
    Donc à chaque nouvelle saisie, je dois ensuite remonter dans mon tableau pour y accéder.
    Est-il possible de faire en sorte que mon tableau se repositionne sur la dernière saisie ? Peut-être en changeant cette fameuse deuxième ligne ... Mais je ne sais pas quoi mettre ..

    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Hello,

    Tout le monde, je me permet un petit up
    Merci pour votre future aide

  3. #3
    Membre actif
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Points : 297
    Points
    297
    Par défaut
    Bonjour,

    ServiceDataGriView & co, je ne connais pas et mon ami GG non plus, donc je suppose que c'est quelque chose d'interne chez vous.

    Je base ma réflexion sur le fonctionnement des composants classique, a toi de tester et de voir ce qui marche.
    En premier lieu, le fait que le curseur se place sur la dernière ligne est normal, c'est ce que tu lui dit là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ServicebindingSource.Position = ServicebindingSource.Count -1
    Maintenant, si ta méthode Add() fonctionne normalement, elle devrait te retourner l'index de la ligne ajoutée, ça tombe plutôt bien, c'est ce que tu cherche non ?
    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ServicebindingSource.Position = ServicebindingSource.DataSource.Row.Add(New Object() {..........})
    devrait répondre à ta demande.

    Bonne continuation.
    L’aléatoire n’existe pas en informatique, c’est juste un moyen de dire que l’on a pas encore compris.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Hello,

    Merci pour ta réponse. Oui mon add marche bien. Concernant ta suggestion, au vu de ta ligne de commande, j'ai fait ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ServicebindingSource.Position = ServicebindingSource.DataSource.Row.Add(New Object() {donnee1, donnee2, donnee3})
    Et j'obtiens :
    La conversion du type 'DataRow' en type 'integer' n'est pas valide
    Merci pour ton aide

  5. #5
    Membre actif
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Points : 297
    Points
    297
    Par défaut
    Bonjour,

    Oui, ça aurait été trop beau.
    Bon comme je le disais, tu utilise un framework que je ne connais pas, donc il va falloir que tu fouille la doc pour savoir comment il fonctionne, car nous on ne pourra que faire des suppositions.

    Je ne disais pas que ta méthode Add() ne fonctionnait pas, mais plutôt quelle fonctionnait comme la méthode Add() que l'on trouve de base dans le Framework .NET, par exemple comme pour le BindingSource.Add(Object) qui retourne l'index de l'élément ajouté.

    Position : ça devrait être bon je pense pour déterminer la ligne que tu veux sélectionner. Tu peux faire le test en le mettant à 0 (A voir si c'est pas 1 suivant le fonctionnement de ton framework) pour voir si il sélectionne la première ligne.

    Tu peux aussi voir à ne plus affecter de valeur à Position, le dernier élément devrait être le courant du BindingSource et le sélectionner par défaut (avec un peu de chance ).

    N’hésite pas à fouiller dans tes objets pour voir de quel type ils sont, voir leur propriété, et ainsi éventuellement trouver l'info de l'index de la ligne ajoutée (ton Row en particulier me chiffonne, faute de frappe ? (Rows) sinon je le trouve mal nommé pour une liste).

    Bonne lecture et bonne continuation.
    L’aléatoire n’existe pas en informatique, c’est juste un moyen de dire que l’on a pas encore compris.

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Re,

    Oui c'était une faute de frappe...
    J'utilise actuellement le Framework2. J'ai essayé de migrer vers le Framework4 mais çà me génère des messages d'erreurs concernant les connexions aux bases de données par exemple sans pour autant que dans Visual Basic, il me donne la ligne qui coince. Mais c'est un autre sujet que si nécessaire, j'ouvrirais un autre Topic.

    Je vais regarder ce que tu m'as dit.

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 261
    Points : 98
    Points
    98
    Par défaut
    Re,

    En supprimant cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ServicebindingSource.Position = ServicebindingSource.Count -1
    Si j'ajoute une entrée, la ligne se rajoute mais le curseur reste alors sur la première ligne du tableau et ne se positionne pas sur la nouvelle entrée.
    En fait, si j'arrivais à récupérer comme tu le dis la position de la ligne ou les données sont rajoutées, je pourrais après faire par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Servicedatagridview.FirstDisplayedScrollingRowIndex = la position de la nouvelle saisie
    Edit : Et pour l'instant je ne vois pas trop comment faire ...

Discussions similaires

  1. [C#] changer le curseur dans une datagridview
    Par drayif dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/08/2007, 09h41
  2. Deplacer un curseur dans un RichEdit sous visual c
    Par tweek dans le forum Windows
    Réponses: 7
    Dernier message: 14/01/2004, 00h29
  3. Obtenir la position du curseur dans une Image
    Par bastoune dans le forum Composants VCL
    Réponses: 6
    Dernier message: 14/11/2003, 21h02
  4. Position du curseur dans un TMemo
    Par yokito dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2003, 16h35
  5. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo