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

Windows Forms Discussion :

Form pour visualisation et autre Form pour modification


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Par défaut Form pour visualisation et autre Form pour modification
    Bonjour à tous,

    J'ai créé un écran qui contient un "datagridview" avec toutes les données d'un fichier clients.
    Je ne veux pas éditer, ni ajouter de nouveaux clients dans ce "datagridview" mais je voudrais utiliser un autre écran pour les modifications de
    ces données. J'ai donc créer un 2ème form.

    Quand je double-click sur une ligne du datagridview, j'appel ce 2ème form qui reprend tous les champs (textbox) et me permet donc l'édition.
    Je passe le "bindingsource" dans le constructeur de mon deuxième form et j'effectue le databinding sur tous mes textbox... Là tout fonctionne sans problème.

    Le problème arrive dès que je veux faire l'ajout d'un nouveau client.
    Je clique sur le boutton Add du "bindingnavigator" et j'appel mon 2ème form ("BindingNavigatorAddNewItem_Click") mais lorsque le 2ème form apparait il contient les données de l'ancien client, c-à-d celui qui était sélectionné précédement dans le datagrid ??? C'est seulement quand je reviens au 1ier écran qu'un nouvelle ligne est créée dans le "datagridview"...

    Je ne sais pas si j'ai été clair... Quelqu'un peut-il m'aider ?
    Et surtout me dire si cette méthode est correcte pour ce type de travail (passage du datasource entre 2 formulaires) ??

    Je vous remercie d'avance pour votre aide....

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Par défaut
    Au debut, je t'ai compris mais ici:
    Je clique sur le boutton Add du "bindingnavigator" et j'appel mon 2ème form ("BindingNavigatorAddNewItem_Click") mais lorsque le 2ème form apparait il contient les données de l'ancien client, c-à-d celui qui était sélectionné précédement dans le datagrid ??? C'est seulement quand je reviens au 1ier écran qu'un nouvelle ligne est créée dans le "datagridview"...
    m'a semblé difficilement perceptible.

    Si tu peux être plus clair.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Par défaut
    Citation Envoyé par napegadie
    Au debut, je t'ai compris mais ici: m'a semblé difficilement perceptible.

    Si tu peux être plus clair.
    Dans la barre de navigation du 1ier écran je clique sur l'icône pour ajouter un nouveau client et j'aimerais lancer mon 2ème form
    mais je ne sais pas dans quel 'Event' mettre le code ???
    Si je mets le code dans le click du boutton add il exécute le 2ème écran et ajoute le record seulement quand je reviens au 1ier écran...

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Par défaut
    Si je comprend bien, lorsque tu double-click sur la datagridview, c'est pour recuperer les champ lier à la ligne double-cliquer de la 1ère Form et les modifier dans la 2eme Form à travers les texbox.
    Parcontre lorsque tu click sur le bouton Add de la 1ère form, c'est pour avoir les texbox vide dans la 2eme Form afin de saisir de nouvelle valeur que tu enregistre après.

    Si tel est le cas repond moi

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Par défaut
    Ce que je peux te conseiller tel je comprend, dans ta 1ère Form tu place un bouton Nouveau qui va t'envoyer sur la 2ème Form avec les texbox vides. Là tu cré un bouton Add où tu va placer le ton code d'enregistrement après quoi tu rattache ton datagridview à un databinding et appeler la 1ère Form pour visualiser tes nouveaux champ.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Par défaut
    Citation Envoyé par napegadie
    Ce que je peux te conseiller tel je comprend, dans ta 1ère Form tu place un bouton Nouveau qui va t'envoyer sur la 2ème Form avec les texbox vides. Là tu cré un bouton Add où tu va placer le ton code d'enregistrement après quoi tu rattache ton datagridview à un databinding et appeler la 1ère Form pour visualiser tes nouveaux champ.
    Merci beaucoup napegadie pour tes conseils...

    C'est +/- ce que j'allais faire, ce que je voulais simplement c'est utiliser le bouton déjà prévu dans ma barre de navigation et j'ai pour cela mis la propriétés "AddNewItem" de la barre de navigation à "none", et maintenant lorsque je clique sur le bouton, il n'ajoute plus de nouveau record dans le "datagridview" et je vais pouvoir maintenant mettre le code qui appel mon écran dans l'Event click de ce dernier...

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Par défaut
    Ok bien à toi.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 104
    Par défaut
    Bonjour,

    Il est quand même dommage de rajouter un bouton au lieu de se servir d'un contrôle plutôt complet, juste parce qu'on ne sait pas lire l'aide ...

    si on regarde la propriété addnewitem du bindingnavigator :
    bindingnavigator.addnewitem
    Une fois définie, la propriété AddNewItem génère le gestionnaire d'événements Click du bouton Ajouter nouveau. Ce gestionnaire d'événements appelle la méthode AddNew lorsqu'un clic est effectué sur le bouton Ajouter nouveau au moment de l'exécution.
    regardons la méthode AddNew de notre bindingsource :
    bindingsource.addnew
    1/ La méthode EndEdit est appelée automatiquement pour valider toutes les opérations d'édition en attente.

    2/ L'événement AddingNew est déclenché automatiquement. Cet événement peut être géré par programme pour construire le nouvel élément. Cette action est effectuée dans le gestionnaire d'événements en affectant la valeur du nouvel élément à la propriété NewObject du paramètre System.ComponentModel.AddingNewEventArgs. Le nouvel objet créé dans l'événement AddingNew doit être du même type que le type contenu dans la liste, sinon une exception se produira.
    Si l'événement AddingNew n'est pas géré et que la liste sous-jacente est IBindingList, la demande est passée à la méthode IBindingList.AddNew de la liste. Si la liste sous-jacente n'est pas IBindingList, l'élément est créé automatiquement via son constructeur public par défaut. Dans les deux cas, le nouvel élément est ajouté à la fin de la liste.

    3/ Le nouvel élément est ajouté immédiatement à la liste interne sauf si la source de données implémente l'interface IEditableObject. Dans ce cas, le nouvel élément n'est pas validé jusqu'à ce qu'un appel explicite à System.ComponentModel.ICancelAddNew.EndNew soit fait ou qu'une nouvelle opération de liste soit initialisée. Avant sa validation, le nouvel élément peut être restauré en appelant CancelEdit, auquel cas le nouvel élément est ignoré.

    Cette méthode déclenche l'événement ListChanged.
    1/ Tu peux gérer toi même la création de la nouvelle instance
    2/ Tu peux utiliser l'évènement ListChanged pour faire une action personnalisée.
    voir listchangedtype pour bien utiliser cet évènement.

    Il est important de lire la MSDN pour savoir comment utiliser les éléments du Framework.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/05/2007, 10h43
  2. Réponses: 3
    Dernier message: 02/04/2007, 20h37
  3. Réponses: 2
    Dernier message: 06/01/2007, 20h45
  4. Réponses: 4
    Dernier message: 21/04/2006, 22h08
  5. [C#] appeler Close() d'un form à partir d'un autre form
    Par vvvvv dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/02/2006, 18h36

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