2010-11-17 16 views
0

Il s'agit d'un programme qui lit les données des étudiants à partir d'un fichier texte et les affiche dans une zone de liste (Form1). A partir de là, vous pouvez ajouter un nouvel étudiant au fichier texte en cliquant sur le bouton "Ajouter" qui affiche un autre formulaire (Formulaire 2) et vous entrez les nouvelles données de l'étudiant dans les zones de texte appropriées. Ensuite, vous pouvez appuyer sur le bouton "Ajouter" (Form2), mais la fenêtre Ajouter un étudiant (Form2) revient avec toutes les données entrées, et si je place à nouveau les nouvelles infos sur l'étudiant dans les zones de texte et cliquez sur "Ajouter", programme revient à Form1 et une boîte de message suppose de dire ce qui a été ajouté au fichier texte, mais rien n'a été ajouté, sauf pour les éléments de liste vides.Comment passer une donnée de variable chaîne de Form2 à Form1?

Répondre

0

Je pense que vous avez les affectations en arrière; vous définissez les valeurs de la zone de texte sur les éléments du tableau de chaînes, qui sont tous NULL car ils n'ont jamais été définis. Essayez cela en premier.

Une autre chose que vous pourriez faire est de placer l'instance du tableau de données sur Form1, et le passer en référence au constructeur de Form2. De cette façon, le travail de Form2 consiste simplement à collecter des données et n'a pas vraiment besoin de connaître les détails d'implémentation de Form1; tout ce dont il a besoin est un tableau de chaînes (ou de préférence une classe avec des propriétés nommées) dans lequel stocker ses données. Form1 peut alors examiner le DialogResult de Form2, et si c'est "OK" alors Form1 sait qu'il y a des données dans le tableau qu'il a passé à Form2, et il peut gérer la manipulation de son propre ListView et écrire dans le fichier.

+0

Wut !? ma faute... – stranger

0

Normalement, Form1 instancie Form2 et le montre. Vous pouvez ajouter un getter de propriété publique sur Form2 qui contiendra les informations nécessaires et Form1 pourrait le récupérer à partir de l'instance de Form2 si nécessaire.

0

Faites les propriétés sur le deuxième formulaire, puis sur la première forme vérifiez les propriétés pour obtenir la valeur.