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 :

[C#]DataBinding textbox problème


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2003
    Messages : 33
    Par défaut [C#]DataBinding textbox problème
    Bonjour à tous,

    Mon problème est le suivant :
    J'ai un formulaire avec plusieurs champs (textbox) qui est chargé et qui affiche les informations sur la personne choisie...

    Toutes mes Textbox sont "bindées" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myTextBox.DataBindings.Add("Text" , datasource, dataMember);
    Le formulaire contient égalment un boutton "save" qui lui est inactif au chargement du formulaire.
    j'aimerais évidemment l'activer seulement si un champ est modifié.


    cet évènement est appelé chaque fois qu'une textbox génère l'event "TextBoxChanged" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private void EventHandler_PropertyChanged(object sender, EventArgs e)
     {			
    if(GetBindingModificationState(myTextBox);
         {
         myButtonSave.enable = true ; //enbale si il y a eu un changement...
         }
    }
    puis cette méthode qui me permet de savoir si la valeur du champ a été modifiée... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    private bool GetBindingModificationState(Control control)
        {
        if(control.DataBindings.Count>0)
    	{
    	Binding b = control.DataBindings[0];
    	if(b==null) return true;
     
    	FieldInfo i = b.GetType().GetField("modified", BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic);
    //mon problème vient d'ici, la première fois ==> toujours false !
     
        return (bool)i.GetValue(b);				
    	}
     
        else
    	{
    	return true;
    	} 
    }
    Cela marche presque parfaitement, le seule problème que j'ai, c'set que la première fois que l'évènement TextBoxChanged est appelé, ma méthode retourne toujours false et le bouton save n'est pas mis à jour. si je tape un deuxième caractère dans ma textbox, cela fonctionne...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Au lieu de verifier le champs fieldInfo, pourquoi tu verifies pas que le contole TextBox contient du texte ou pas.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2003
    Messages : 33
    Par défaut
    En fait, c'est pas toujours une textbox, j'ai également pas mal d'autres composants...

    En fait, apparemment la propriété Modified de ma textbox ne semble pas être mise à jour du premier coup, mais je ne comprends pas pourquoi...

    Y a t-il un bug connu à ce sujet... ?

  4. #4
    Membre éclairé Avatar de padodanle51
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 389
    Par défaut
    gère l'évenenent kan on relache un touche du clavier c peut-etre plus efficace

Discussions similaires

  1. [XL-2003] VBA Selectionner Textbox --> problème
    Par Kaya_VB_13 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/07/2013, 12h08
  2. Databinding Textbox.text ne se met pas à jour
    Par zebrette dans le forum VB.NET
    Réponses: 1
    Dernier message: 16/01/2012, 12h58
  3. databindings : textbox et propriété de classe.
    Par Kropernic dans le forum VB.NET
    Réponses: 0
    Dernier message: 28/11/2011, 09h24
  4. Databinding TextBox et TimeSpan
    Par fredele dans le forum C#
    Réponses: 3
    Dernier message: 29/12/2010, 16h36
  5. de port com à textbox, problème
    Par moustiqu3 dans le forum C#
    Réponses: 2
    Dernier message: 19/03/2010, 23h56

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