J'ai créé une boîte de dialogue qui contient 3 onglets. Les contrôles sur les onglets 1 & 2 ont une validation à l'aide de l'événement Validating()
. L'utilisateur travaillera principalement sur les onglets 1 & 3, ne montrant jamais l'onglet 2 sauf si nécessaire. Tous les contrôles des onglets 1 & 2 sont liés à un objet BindingSource.Comment accéder à la valeur du contrôle lié sur un onglet non affiché pour validation?
De mon observation, il semble que les contrôles liés ne sont pas initialisés sur l'onglet 2 jusqu'à ce que l'onglet est affiché. Par conséquent, la validation de l'ensemble du formulaire échoue car ces contrôles n'ont aucune valeur. La valeur TextBox.Text est ""
lorsque Validating()
est appelée la première fois et somevalue
après avoir affiché l'onglet.
J'ai essayé de « pré-initialisation » les commandes Tab 2 de l'événement Load
(par exemple TextBox.Value = 'test';
, mais a trouvé la valeur a été effacée avant de valider() a été appelé.
Je songeais sur la vérification de la valeur de . BindingSource.Current, mais cette solution particulière a de multiples pièges, notamment le contenant de BindingSource une valeur non validée
Quelle étape (s) dois-je prendre soit:
- les commandes avant initialize t hey sont affichés
- obtenir la valeur appropriée (contrôle ou BindingSource) pour
Validation()
C'est une solution, mais pas idéale, en raison de ce que je considère comme une apparence de formulaire pour l'utilisateur. Il a cependant ouvert quelques portes de plus dans ma recherche d'une réponse à ma question. – KDrewiske