[Résolu] Lier un TextBox à un DataSet dans un TabControl

Lier un TextBox à un DataSet dans un TabControl [Résolu] - C#/.NET managed - Programmation

Marsh Posté le 12-05-2006 à 15:14:46    

Bonjour,
 
j'ai réalisé un programme permettant de binder une case d'un DataTable (Contenu dans un DataSet) à des TextBox.
Cela marche très bien tant que mes TexBox sont sur la Form Principale ou dans la première Page de mon TabControl.
 
Si je place ce même TextBox qui fonctionne dans une autre Page du TabControl, çà ne fonctionne pas.
 
Je rate surement quelquechose d'évident,
 
Quelqu'un peut-il m'aiguiller vers la bonne voie.
Merci,
 
Gwen


Message édité par gwenCPP le 12-05-2006 à 18:29:41

---------------
Dans la vie le meilleur chemin n'est pas forcément le plus droit mais celui sur lequel on se sent le plus à l'aise
Reply

Marsh Posté le 12-05-2006 à 15:14:46   

Reply

Marsh Posté le 12-05-2006 à 15:25:55    

qu'est ce qui ne marche pas. Message d'erreur please?  
Au debugging ça donne quoi?  
 
Généralement, sur les composants infragistics offrant cette possibilité, un databind fait souvent l'affaire.

Reply

Marsh Posté le 12-05-2006 à 17:10:13    

Merci de chercher à comprendre mon problème,
 
Il n'y a pas de message d'erreur, à la compilation il n'y a aucun problème ni warning.
 
En fouillant sur le net, il semblerait que le problème vienne du "focus" de la deuxième TabPage.
 
Apparement, le rafraichissement ne se fait pas si le TextBox n'est pas sur la première TabPage ou sur la Form1.
 
Il doit y avoir quelque chose que je connais pas dans le synchronisme du DataBind avec un objet qui n'a pas le focus lors du chargement de la fenêtre.


---------------
Dans la vie le meilleur chemin n'est pas forcément le plus droit mais celui sur lequel on se sent le plus à l'aise
Reply

Marsh Posté le 12-05-2006 à 18:28:58    

Re,
 
Après quelques recherches hasardeuses, et pas mal de solutions testées, j'ai trouvé une voie (même pas très propre mais elle marche).
 
Donc pour récapitulé, parce que je n'ai peut-être pas été très clair dans mes post précédents:
 
-J'initialise une DataSet-DataTable-DataRow, de façon classique.
-J'associe des données de ce DataSet à des TextBox.
-Mes TextBox sont placés dans plusieurs tabPage d'un tabControl
-Lorsque mes TextBox de la TabPage principale sont DataBindés à mon DataSet, les données sont rafraichies correctement.
 
Mon problème était le suivant : les TextBox de tous les autres tabPage, DataBindés à mon DataSet n'étaient pas rafraichis (ou plutot si car je me suis apperçu qu'en écrivant dans le textbox et en modifiant la valeur dans le dataSet, le TextBox contenait "", bref...).
 
La solution est d'activer le context de la Form1 avant toutes modifications de context.
 
Dans la fonction form_Load, dès le début je fais :
 
this.tabControl.SelectedIndex = 1;  // Deuxième TabPage activé
this.tabControl.SelectedIndex = 0;  // Retour à la TabPage principale.
 
Résultat : Tous les TextBox DataBindés sont affichés correctement.
 
En espérant que çà quelqu'un d'autre aussi.
 
Gwen.
 
PS : J'ai vraiment l'impression de chercher des astuces de ce type à longueur de journée. C'est navrant....


---------------
Dans la vie le meilleur chemin n'est pas forcément le plus droit mais celui sur lequel on se sent le plus à l'aise
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed