Problème d'affichage de données dans un Formulaire

cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 août 2010 - 22 avril 2009 à 14:59
cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 août 2010 - 23 avril 2009 à 11:06
Bonjour à tous,

Je suis confronté à un problème pour la deuxième fois sur deux programmes distincts. Je n'arrive pas à trouver la solution en épluchant les lignes de code, c'est pourquoi je requiers votre aide.

Voici le problème, qui paraît simple mais pourtant... :

               - J'ouvre un formulaire pour afficher des données dans des textbox, etc (classique) : tout marche.
               - Je ferme ce formulaire avec un Me.DestroyHandle et un Me.Hide : pas de problème.
               - J'ouvre à nouveau ce formulaire pour charger des données différentes : ce sont les anciennes données qui sont affichées.
               - Je ferme le formulaire et le ré-ouvre : les "nouvelles" données sont affichées !

En clair, dès lors que je veux afficher des données différentes, qui sont appelées au démarrage du formulaire, je dois le fermer et le ré-ouvrir... Le code en soi ne contient aucune erreur, mais l'affichage "bug".

Pour mieux vous exliquer, voici exactement ce qu'il se passe :

               - Je veux ouvrir une fiche n°45 (au hasard) dans un formulaire : ça marche.
               - Je la modifie et ferme le formulaire : ça marche, les modifications ont correctement été prises en compte.
               - Je veux ouvrir la fiche n°46 dans le même formulaire : ce sont les données de la fiche n°45 qui sont affichées ! Si je modifie ces données, ce seront celles de la fiche n°45 qui seront affectées et non celles de la fiche n°46.
               - Je ferme le formulaire et ré-ouvre la fiche n°46 : les bonnes données sont affichées !

Je me demande si c'est à cause du mode de fermeture (c'est pourquoi j'ai mis un DestroyHandle et un Hide) ?
Peut-être est-ce un bug de "purge de la mémoire" (existe-t-il un tampon qui ne se vide pas lors de l'affichage du formulaire) ?

Pour finir, voici un petit schéma explicant le "parcours" des données :

               - Demande d'ouverture d'une fiche
                  -> Récupération de ses informations dans des variables
                  -> Affichage du formulaire

               - Lors de l'affichage : affichage des données dans les controles correspondants (textbox, ...).

En espérant avoir été précis et en vous remerciant d'avance pour m'aider à résoudre ce problème,

-Papymuzo-

2 réponses

cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
23 avril 2009 à 00:06
Salut
Ne faudrait-il pas faire l'équivalent d'un "UnLoad Me" en VB6, pour purger les anciennes données?

CNTJC
0
cs_Papymuzo Messages postés 169 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 17 août 2010 1
23 avril 2009 à 11:06
Hello,

J'ai trouvé la solution en cherchant "équivalent Unload Me en vb.net".

Pour ceux qui seraient intéressés, afin de purger la mémoire graphique d'un formulaire il faut effectuer un Me.Close().

Personnellement, j'effectue un Me.Close, puis un événement (FormClosing) fait, par dessus, un Me.DestroyHandle et un Me.Hide (un peu bourrin je vous l'accorde :D).

-Papymuzo-
0
Rejoignez-nous