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 :

deplacement horizontal dans un datagrigview avec la touche entrer


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut deplacement horizontal dans un datagrigview avec la touche entrer
    Bonjour

    Par défaut lorsque l'on appuie sur la touche "enter" lors de la saisie dans un datagridview cela fait passer a la ligne suivante.
    J'aimerai que cela passe a la cellule suivante pour continuer la saisie.

    J'ai fait ce code mais en mettant un point d'arret je ne passe pas dessus, quelqu'un aurait il une idée du pourquoi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Private Sub DGV_Remise_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DGV_Remise.KeyDown
            If e.KeyCode = Keys.Enter Then
     
     
                DGV_Remise.CurrentCell = DGV_Remise.CurrentRow.Cells(DGV_Remise.CurrentCell.ColumnIndex + 1)
            End If
     
        End Sub
    Merci d'avance

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    essaye sur d'autres évènements (cell quelque chose peut etre)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut
    merci de prendre le temps de me répondre.

    Sur les evenements cell .... je passe dessus car le code s'arrete sur le point d'arret.

    Mais je ne peux pas faire mon code dessus car sur entré ou sorti d'une cellule aller a la cellule suivante va me faire tourner en rond dans la procédure

    Je n'arrive pas a comprendre pourquoi la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub DGV_Remise_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DGV_Remise.KeyDown
    ne se fait pas sur appuie sur n'importe quel touche en ayant le curseur dans le DGV

    Mon datagrigview n'a pas de datasource il est tout bete il sert pour la saisie.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par gilles_906 Voir le message
    Je n'arrive pas a comprendre pourquoi la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub DGV_Remise_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DGV_Remise.KeyDown
    ne se fait pas sur appuie sur n'importe quel touche en ayant le curseur dans le DGV
    parce que le datagridview lors de l'entrée en mode saisie instancie un controle (selon le type la colonne un textbox, combobox ou autre) et le pose graphiquement au même endroit que la cellule
    et c'est donc ce controle créé qui intercepte l'évènement keydown à la place du dgv
    une fois la validation terminée, le dgv récupère la valeur du controle créé, la met dans sa cellule et détruit le controle

    d'ailleurs tu peux te brancher sur l'évènement qui dit que le controle d'édition a été créé (cellenteredit ou un truc dans le genre), ajouter une liaison à l'évènement keydown de ce control à l'exécution (addhandler)
    (il faut aussi penser à retirer le handler créé sous peine de fuite mémoire, via removehandler)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2010
    Messages : 277
    Par défaut
    merci pour l'explication, mais j'aurais du rajouter débutant sur ma question

    Alors j'ai compris pourquoi cela ne passait pas sur la procedure.

    J'ai trouver CellEndEdit qui doit surement etre la fin de l'édition du control instancié par le DGV.

    D'aprés ce que j'ai compris tu me dis de renvoyer a la procedure keydown sur cellEndEdit?

    du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Private Sub DGV_Remise_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGV_Remise.CellEndEdit
            DataGridView1_KeyDown(sender, e)
        End Sub
    Le soucis est que e n'est pas accepté j'ai cette erreur:
    Impossible de convertir une valeur de type 'System.Windows.Forms.DataGridViewCellEventArgs' en 'System.Windows.Forms.KeyEventArgs'.
    De plus je n'ai compris le addhandler pourrais tu m'en dire un peu plus dessus.

    Merci d'avance

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    non je n'ai pas dit ca
    par contre cellendedit doit suffire, essaye de déplacer la cellule active dans cet évènement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/12/2011, 15h28
  2. Réponses: 2
    Dernier message: 24/11/2006, 09h54
  3. valider formulaire avec la touche 'entrer'
    Par mikees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/07/2006, 18h51
  4. [VB6] Problème avec la touche 0 dans une MaskEdBox
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/03/2006, 10h47
  5. Comment se déplacer avec la touche tab dans un dbGrid ?
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/09/2005, 16h36

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