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 :

Simulation du "+" dans le bindingNavigator


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Simulation du "+" dans le bindingNavigator
    Bonjour,
    Je suis nouvelle dans l'utilisation de C# et encore plus avec le bindingNavigator.

    Ce que je voudrais faire est de simuler le bouton "ajouter" (bindingnavigatorAddNewItem_Click) par programmation. En effet, plutôt que ce soit l'utilisateur qui clique sur ce bouton, je voudrais l'appeler par programmation.

    Voici une partie du code fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ...
    ...
    ...
    bindingNavigator.BindingSource = bindingSource; 
    ... 
    ... 
    ... 
     
    bindingNavigatorAddNewItem_Click (...){ 
     
          BindingSource.AddNew (); 
     
    }

    Il semble que je n'ai pas fait la simulation correctement. Il me manque quelque chose. Pour l'instant, pour ne pas perdre mes données avant de faire la navigation, je dois faire un Update(). Je ne voudrais pas être obligé de faire Update() avant de naviguer sur mon bindingnavigator. Et si je n'ai pas fait la mise à jour, je perds les données que j'ai entré ()

    Ce que je comprends, c'est que lorsque, dans nos propriétés de bindingNavigator le AddNewItem est setté à None, c'est seulement notre méthode sur le click (bindingNavigatorAddNewItem_Click ) qui est appelé.

    Sinon, on dirait qu'il appelle une chose qui ajoute l'item (+ autre chose) et ensuite notre méthode click (bindingNavigatorAddNewItem_Click).

    Qu'est-ce qui me manque pour que je puisse simuler correctement le fait que l'utilisateur clique sur le "+" du bindingnavigator???

    Est-ce qu'il y a quelqu'un qui pourrait m'aider s'il vous plaît?

    Merci à l'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    J'ai pas tout compris à ton problème, mais de toutes façons, il faut bien comprendre que le BindingNavigator n'est rien de plus qu'une interface graphique pour la BindingSource... quand tu cliques sur un bouton, le BindingNavigator appelle simplement la méthode correspondante de la BindingSource (AddNew, RemoveCurrent, MoveFirst, MoveLast, MoveNext, MovePrevious...). Donc tout ce que tu as à faire pour ajouter un nouvel élément à la source de données, c'est appeler la méthode AddNew sur la BindingSource.

    Je te conseille d'utiliser Reflector pour examiner le code du BindingNavigator, ça t'aidera à mieux comprendre son fonctionnement.

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci tomlev!

    J'avoue que je ne suis pas trop claire dans ma question mais bon!
    Alors je vais downloader Reflector (je ne connaissais pas ça du tout!) et je vais vérifier.

    Après avoir continuer mes recherches, si je comprends bien, je dois simuler le + en utilisant le bouton AddNew avec la fonction PerformClick() du bindingnavigator? En tous cas, d'ici là, je vais installer Reflector et regarder ça.

    Merci encore pour ta réponse!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par sincos Voir le message
    si je comprends bien, je dois simuler le + en utilisant le bouton AddNew avec la fonction PerformClick() du bindingnavigator?
    Non, ce n'est pas du tout ce que j'ai dit... tu n'as pas besoin de manipuler le BindingNavigator du tout, il faut manipuler directement la BindingSource. Il suffit d'appeler sa méthode AddNew

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    ok. c'est pcq j'avais essayé ça mais ça me donnait l'impression que le bouton "+" faisait quelque chose de plus que le Add New sur un bindingsource. Mais s'il ne fait rien de plus alors je vais le laisser comme ça.

    Merci encore!

  6. #6
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Essais ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom_du_BindingNavigator.Items["bindingNavigatorAddNewItem"].PerformClick();

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par emmr.rida Voir le message
    Essais ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom_du_BindingNavigator.Items["bindingNavigatorAddNewItem"].PerformClick();
    Ben si tu tiens à passer par le bouton il y a plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_du_BindingNavigator.AddNewItem.PerformClick();
    Mais de toutes façons, comme je le disais plus haut ça ne sert à rien de passer par le BindingNavigator, qui est juste une interface utilisateur pour la BindingSource. Le code n'a pas besoin d'une interface utilisateur (lapalissade), il peut manipuler directement la BindingSource...

  8. #8
    Membre actif
    Inscrit en
    Octobre 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2007
    Messages : 236
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Je te conseille d'utiliser Reflector pour examiner le code du BindingNavigator, ça t'aidera à mieux comprendre son fonctionnement.
    Pardon si je dévie le bon chemin de ce post mais je me suis posé cette question le jour où j'ai lu le message ci-dessus :
    - Est-ce tout à fait légal de désassemblé les assemblys .NET avec Reflector?

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par emmr.rida Voir le message
    Pardon si je dévie le bon chemin de ce post mais je me suis posé cette question le jour où j'ai lu le message ci-dessus :
    - Est-ce tout à fait légal de désassemblé les assemblys .NET avec Reflector?
    A vrai dire, je n'en ai aucune idée... mais c'est une pratique très répandue, et je vois souvent sur les forums et blogs des gens de Microsoft ou d'autres grosses boites qui disent l'utiliser régulièrement.

    De toutes façons Reflector se contente de faire une conversion directe entre code MSIL et code C#, je ne vois pas très bien en quoi ça peut être illégal, mais je ne suis pas juriste... En plus ça doit dépendre des pays.

    En ce qui concerne le code du .NET Framework, MS en a rendu public une grande partie, depuis environ 2 ans il me semble. Il n'est pas directement téléchargeable, mais on peut y accéder via le debugger, moyennant quelques manipulations dans les options de VS. Donc je ne pense pas qu'utiliser Reflector pour voir un code qui, de toutes façons, est public, soit répréhensible...

    N'empêche, c'est vrai que j'aimerais avoir l'avis d'un expert

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

Discussions similaires

  1. [SQL2k5][SSIS] Quotes générées dans mes variables dynamiques
    Par Ivynox dans le forum Développement
    Réponses: 0
    Dernier message: 09/08/2010, 10h45
  2. [MySQL] Pourquoi dois-je utiliser des "quotes penchées" dans mes requêtes?
    Par v4np13 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 29/02/2008, 23h23
  3. Afficher quote/guillemet dans un input
    Par EggY14 dans le forum Langage
    Réponses: 8
    Dernier message: 15/09/2006, 12h59

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