J’ai une TextBox, qui est dans un TabControl, est qui n’est pas visible lorsque je lance mon appli tant que l’utilisateur n’a pas cliqué sur l’onglet du TabControl. La propriété Text de ma TextBox est liée à un paramètre de application My.Settings.MonParam (DataBindings).
Au lancement de l’application je dois récupérer la valeur de la propriété Text (je ne peux pas la récupérer directement dans My.Settings.MonParam car je ne sais pas comment récupérer My.Settings.MonParam à partir de ma TextBox)
Le problème c’est que myTextBox.Text me renvoie une chaîne vide (ce qui n’est pas le cas lorsque ma TextBox est affichée à l’écran). J’ai l’explication mais pas la solution, la doc dit :
Une liaison est active lorsqu'elle remplit ces conditions :
• Toutes ses propriétés sont définies.
• L'utilisateur n'a pas appelé ResumeBinding ou SuspendBinding sur le BindingManagerBase auquel le Binding appartient.
• Le contrôle auquel le Binding appartient a été créé.
En fait ma TextBox n’est pas liée (je le sais grâce à la propriété isBinding) car elle n’est pas crée (cf ci-dessus)(propriété isCreated) tant qu’elle n’est pas affichée.
J’ai donc utilisé la méthode CreateControl avant la lecture de la propriété Text :
Mais ça ne marche pas car myTextBox.Created = False !!! Et ce à n’importe quel endroit dans mon code !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 myTextBox.CreateControl() MsgBox(myTextBox.Created)![]()
Pourquoi ? Comment créer ma TextBox ? Comment lire son contenu lié tant qu’elle n’est pas affichée ?
Merci d'avance.
Partager