none
Formulaire de saisi RRS feed

  • Question

  • Bonjour,

    J'ai un formulaire de saisi avec des textbox et combobox, ainsi qu'un bouton "Ok" et un bouton "Annuler".

    Je voudrai savoir, quand je clique sur le bouton "OK", quels sont les textbox, et combobox qui ont été modifié. Est-ce possible?

    D'autre part, avec un TextBox nommé "TextBox1", en passant par une variable :

    string tbName = "TextBox1";

    est-il possible de récupérer ce qui est saisi dans TextBox1 en passant par tbName?

    remerciements,


    Jean PERIGNY, Développeur
    jeudi 30 septembre 2010 04:56

Réponses

  • Bonjour Jean,

    Je te conseillerai plutôt de créer une variable par control et qui validerait le controle avec l'événement changed

    exemple:

    bool textbox1Validation = false;
      private void textBox1_TextChanged(object sender, EventArgs e)
      {
       if (textBox1.Text == "ce que je veux")
       {
        // si c'est valide alors
        textbox1Validation = true;
       }
      }

    Avant validation finale, tu n'as qu'a vérifier que tous les textboxvalidation soient TRUE

    sinon tu as la possiblité de forcer l'utilisateur à respecter un format d'entrée de valeur  avec le format MaskedTextBox .

    voir

    http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/6879190a-bc46-4b4a-a44f-abe192054e12


    fred
    samedi 2 octobre 2010 16:06

Toutes les réponses

  • Bonjour,

    En supposant que c'est une application "Windows Forms", il est possible de trouver le contrôle dans la collection http://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.controls.aspx (ou même d'examiner dynamiquement tous les contrôles présents sur le formulaire même sans connaitre à priori leur existence).

    Une autre approche est de créer un tableau initialisé avec les contrôles à tester...

    Souvent il peut-être utile de donner une vue d'ensemble du but poursuivi (par exemple si derrière les valeurs alimentent un objet, c'est l'objet qui peux gérer le changements et savoir si il a été effectivement modifié etc....)

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    jeudi 30 septembre 2010 11:18
    Modérateur
  • Bonjour,

     

    J’ai du mal à comprendre pourquoi vous voulez récupérer une des propriétés d’un objet TextBox en passant par une variable de type string qui a comme valeur une autre propriété (le nom) de cet objet. Pouvez-vous détailler quel est le but envisagé ?

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF

    Café des usages

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     

    vendredi 1 octobre 2010 09:55
  • Bonjour,

    Disons que, pour des besoins très spécifiques, sur un formulaire je fais une validation de la saisi en cliquant sur un bouton "Ok", et à ce moment je voudrai faire ce qui suit :

    1. Pouvoir lister les contrôles du formulaire afin de savoir quels sont ceux qui ont été modifié,

    2. Pouvoir obliger l'utilisateur a revenir sur un contrôle en cas de nécessité, avant de procéder à la validation finale de toute la saisi,

    Et concernant la question d'Alex, je voudrais simplement accéder à un contrôle (ou une variable déclarée) en contruisant dynamiquement le nom du contrôle (ou de la variable).

    merci à Patrice scribe pour le lien que j'ai visité.

    Il est vrai aussi, que je suis un "vieux" programmeur du début des années 80, et que même si j'ai fait le langage C de l'époque, je ne maitrise pas suffisament Visual Stutdio, ayant passer le plus clair de mon temps à Coder sur d'autres langages, :) mais, j'espère bien y arriver.

    remerciements pour votre aide,

    Cordialement


    Jean PERIGNY, Développeur
    samedi 2 octobre 2010 04:40
  • Bonjour Jean,

    Je te conseillerai plutôt de créer une variable par control et qui validerait le controle avec l'événement changed

    exemple:

    bool textbox1Validation = false;
      private void textBox1_TextChanged(object sender, EventArgs e)
      {
       if (textBox1.Text == "ce que je veux")
       {
        // si c'est valide alors
        textbox1Validation = true;
       }
      }

    Avant validation finale, tu n'as qu'a vérifier que tous les textboxvalidation soient TRUE

    sinon tu as la possiblité de forcer l'utilisateur à respecter un format d'entrée de valeur  avec le format MaskedTextBox .

    voir

    http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/6879190a-bc46-4b4a-a44f-abe192054e12


    fred
    samedi 2 octobre 2010 16:06
  • Bonjour Fred,

    Merci pour ta réponse. et le lien.

    Cordialement,


    Jean PERIGNY, Développeur
    dimanche 3 octobre 2010 04:03
  • Bonjour,

    J'ai réussi à trouver quelque chose qui me permet de contourner un peu mon problème initiale. J'avais déjà commencer à travailler comme fred me le proposer, et j'ai donc continuer ainsi.

    J'ai une liste de variable :

    public bool gbAction = false;

    public bool gbPhone = false;

    public bool gbeMail = false;

    public bool gbName = false;

    public bool gbSurname = false;

    public bool etc.. etc... etc....

    J'ai aussi :

             private bool checkForm()

            {

                bool bCheck = true;

                Type T = typeof(Fen_Ambassador);

                System.Reflection.FieldInfo[] FI = T.GetFields(); // Je récupère la liste de mes déclarations

                foreach (MemberInfo m in FI)

                {

                    string s = m.Name;

     

                    if (s.StartsWith("gb")) // Je prend que ce que j'ai besoin

                    {

                        bCheck = bool Indirection(This, s); // MON PROBLEME EST ICI

                    }

                    if (!bCheck) break;

                }

                return bCheck;

            }

     

    et puis :

     

            private object Indirection(ref object obj, string membername)

            {

            FieldInfo fi;

            fi = obj.GetType().GetField(membername);

            return fi.GetValue(obj);

     

            }

     

    Mon problème est donc de récupérer la valeur de retour de Indirection. Le message que j’ai sur le ligne

    « bCheck = bool Indirection(This, s); » 

    est : 

    Erreur 1        The best overloaded method match for 'Perfumery.Fen_Ambassador.Indirection(ref object, string)' has some invalid arguments         C:\Users\AIMS\Documents\Visual Studio 2008\Projects\VC\Perfumery\Perfumery\Fen_Ambassador.cs        611     26      Perfumery

    Est-ce correct ? Comment je peux faire pour récupérer la valeur de retour de Indirection( … ) ?

     

    Remerciements

     


    Jean PERIGNY, Développeur
    mercredi 20 octobre 2010 07:51