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 :

Comment forcer une validation de cellule?


Sujet :

VB.NET

  1. #1
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut Comment forcer une validation de cellule?
    Bonjour,
    Pour une application Winforms, j'implémente un DataGridView qui contient, entre autres, des DataGridViewTextBox. Mon application nécessite que certaines lignes soient impérativement renseignées, j'ai des tests à base d'expression régulières pour les cellules validées.

    Mon problème se situe au niveau d'une cellule en mode édition : un scénario classique de mon application pourrait être le remplissage de ces cellules nécessaires, puis l'enregistrement du document. Le contenu de la cellule en mode édition lors de la sauvegarde est alors perdu. Je voudrais donc déclencher l'équivalent d'une validation de cellule, comme si on cliquait avec la souris sur une autre cellule, ou si l'on appuyait sur TAB, ou alors récupérer le contenu de la cellule en mode édition.

    J'espère avoir été clair.

    Merci de vos réponses.

  2. #2
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut
    N'hésitez pas à me relancer si vous trouvez que je ne susi pas assez clair.

    Pour résumer, est-il possible de récupérer le contenu d'une celule en mode édition?

    Merci de vos réponses.

    Nixar

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    le mode edition n'est pas bien claire pour moi ??
    tu veut parcourir ton datagrid, recuperer les valeurs des cellules et les enregistrer ou bien je suis a cote de la plaque ??

  4. #4
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut
    Ce que j'appelle le mode édition c'est le mode dans lequel se trouve la cellule lorsque l'utilisateur entre les données, avant qu'il valide par entrée ou autre pour fixer les données... J'espère que c'est plus clair pour toi.

    Merci !

    Nixar

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    Desole de poser tant de questions mais y'a un truc que je comprend pas dans ton ennoncé, j'ai deja un peu travaillé avec les datagrid, et je me demandais si ta base de donnée (liée a ton datagrid) se remplissait normalement lors de ta sauvegarde ??
    (J ai deja eu un probleme dans le genre mais je ne retrouve plus mon code )

  6. #6
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut
    Pas de souci pour les questions c'est normal... Je n'utilise pas de base de données mais je remplis le datagridview avec des données issues d'un fichier texte. Je ne rencontre pas le souci dont tu parles... Puisque je mets à jour mon fichier texte lors de la sauvegarde.
    Il m'est imposé de travailler avec ces fichiers textes et je n'ai pas vu l'intérêt d'ajouter une couche de données, étant donné le fait que l'application est assez simple.

    Merci de tes réponses !

  7. #7
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    donc je suis a cote de la plaque
    je recapitule, tu edite la cellule, tu sauvegarde dans le fichier texte (la pas de probleme le mot edité est dans le fichier), mais il n'est plus dans ton datagrid, c'est ca ?? et tu voudrait faire en sorte qu'il y soit encore...

    ps : desolé, j'ai du mal a comprendre un peu mal a la tete

  8. #8
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut
    Pas de souci j'ai du mal m'exprimer. Voici le scénario "cata" qui se passe et que je ne sais pas gérer :
    1) Le datagridview est chargé par mon appli (dans une Form qui est un fenêtre fille MDI). Il contient des cellules à remplir obligatoirement pour la validation d'une ligne et la création automatique d'une autre.
    2) L'utilisateur remplit une cellule n (pendant qu'il tape il est en "mode édition").
    3) Il passe à la cellule n+1 (le contenu de la cellule n est donc accessible avec la méthode "Value" de la datagridviewtextbox)
    4) Il répète les étapes 2 et 3 n fois (en fonction du nombre de lignes)
    5) Lorsqu'il arrive à la dernière cellule de la dernière ligne, ce qui peut se passer est la chose suivante : il fait l'étape 2) mais au lieu de valider sa saisie (par TAB, entrée ou autre) il peut aller directement sauvegarder son document par exemple.

    Dès lors, ma routine de sauvegarde qui parcourt les cellules ne trouvera pas la valeur de la dernière cellule mentionnée à l'étape 5), car elle est encore en "mode édition" et non validée. Mon fichier est donc enregistré avec dans cet exemple la dernière ligne incomplète (on perd la valeur de la cellule en mode édition). Je ne peux pas m'appuyer sur la perte de focus de la cellule, car l'enregistrement est déclenché par un item dans un menu ou une icône dans une barre d'outil... En dehors du document. La cellule ne perd donc pas son focus.

    Je cherche donc à récupérer la valeur de cette cellule en mode édition, PENDANT que l'utilisateur saisit une valeur.

    Voilà voilà !!! J'espère que je suis clair...

  9. #9
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 337
    Points : 319
    Points
    319
    Par défaut
    Ok, j'avais pas compris ca en effet, ben je vois 2 solution (que je ne peut pas tester....desolé).
    Tu doit avoir un truc du genre :
    MonDatagrid.currentCell.value

    sinon, juste avant la sauvegarde, essaye de selectionner une autre case de ton datagrid avec un MonDatagrid.select(1,1), le but etant de faire en sorte que ca quitte le mode edition de ta cellule.

    Ca ne doit pas etre le code exact, je fait des tests et je te redit si je trouve quelque chose d'autre...

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/12/2006, 18h17
  2. Réponses: 2
    Dernier message: 27/09/2006, 19h41
  3. Comment sélectionner une plage de cellules non consécutives?
    Par jokair dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/08/2006, 15h36
  4. Réponses: 2
    Dernier message: 03/05/2006, 22h34
  5. Réponses: 19
    Dernier message: 19/04/2006, 10h16

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