J'ai deux formulaires: Form1 et Form2. Je peux obtenir le contenu d'une liste dans Form1 à une autre liste dans Form2 en appelant un nouveau Form2 et en passant les valeurs po. Je mets à jour la liste dans form2 par exemple, en supprimant un élément de lui. Comment est-ce que je passerais le contenu de la liste de Form2 RETOUR à la liste originale dans Form1? Form1 est le premier formulaire qui apparaît lorsque l'application s'exécute, donc je ne veux pas appeler une nouvelle instance du formulaire.Renvoyer une valeur au formulaire original
Répondre
Vous pouvez passer l'instance initiale de Form1
à Form2
et utiliser cette référence pour renvoyer les données à Form1
.
// A property `Form2`
public Form1 RefToForm1 { get; set; }
// On form 1, after initializing `Form2`:
Form2 frm2 = new Form2();
frm2.RefToForm1 = this;
Note:
Il y a une meilleure solution que ci-dessus (il est rapide et sale). Une meilleure option serait de créer une propriété sur Form2
avec le type de données dont vous avez besoin Form1
et accéder aux données à travers elle:
// A property `Form2`
public List<int> Form2DataForForm1 { get; set; }
// On form 1
var dataFromForm2 = frm2.Form2DataForForm1;
Je trouve que cette solution crée une dépendance bidirectionnelle entre Form1 et Form2. Je préfère éviter que Form2 dépende de Form1; voir ma réponse sur cette page. – CesarGon
Merci cela a fonctionné un charme absoloute. Merci beaucoup encore. –
@CesarGon - La dépendance est déjà là. Le rendre bidirectionnel ne rend pas les choses plus difficiles (à mon avis), et rend la relation plus explicite (le fait que les données doivent voyager dans les deux sens). – Oded
Je vous suggère de mettre en œuvre une propriété Form2 qui renvoie les données pertinentes, et ont Form1 a lu cette propriété en "tirant" les données de Form2.
Cela vaut mieux que Form2 "repousse" les données dans Form1, car il ne conserve que les dépendances à sens unique.
Ni pousser ni tirer n'est intrinsèquement meilleur. Pour tirer, utilisez les propriétés décrites par Cesar. Pour pousser, utilisez les événements. –
@Ben: Je suis d'accord, ni pousser ni tirer est intrinsèquement meilleur. Mais une dépendance unidirectionnelle est préférable à une dépendance bidirectionnelle. Pousser un événement peut maintenir les dépendances à sens unique, ce qui est bien. – CesarGon
C'est mieux si vous pouviez fournir du code pour mieux comprendre – venkat
- 1. Renvoyer une valeur d'une vue
- 2. Renvoyer une valeur avec Ajax.Request
- 3. Fenêtre contextuelle jQuery Renvoyer la valeur au parent
- 4. Renvoyer une valeur à partir d'un script
- 5. $ .getJson() Problème et renvoyer une valeur indéfinie
- 6. Passer une valeur de PHP au formulaire de contact SimpleModal
- 7. Code PHP/MySQL Renvoyer une valeur incorrecte
- 8. Constructeur PHP pour renvoyer une valeur nulle
- 9. Renvoyer une valeur de type Microsoft.XLANGs.BaseTypes.XLANGMessage
- 10. requête serveur SQL pour renvoyer une valeur
- 11. Renvoyer StreamReader au début
- 12. Comment renvoyer une valeur pour un événement (valeur bulle supérieure)?
- 13. La soumission du formulaire avec des erreurs affiche le formulaire + erreurs à une URL différente du formulaire original
- 14. Une méthode connect doit-elle renvoyer une valeur?
- 15. WCF utilise l'objet domaine original au lieu du proxy généré
- 16. Renvoyer dynamiquement bitmap au navigateur
- 17. Comment puis-je renvoyer une valeur aléatoire d'un tableau?
- 18. System.Random continue de renvoyer la même valeur
- 19. Renvoyer une seule valeur avec Linq to SQL
- 20. comment renvoyer une valeur à partir d'une instruction LINQ
- 21. XmlSerializer.Deserialize peut-il jamais renvoyer une valeur nulle?
- 22. Un gestionnaire d'événements peut-il renvoyer une valeur?
- 23. Comment puis-je renvoyer une valeur à GM_xmlhttprequest?
- 24. Comment renvoyer une valeur Unicode dans cet exemple SQL?
- 25. Comment renvoyer une valeur Enum à partir d'une chaîne?
- 26. Pourquoi désérialiser le XML dans l'objet renvoyer une valeur nulle?
- 27. Renvoyer toutes les lignes ayant une valeur maximale
- 28. Renvoyer jTextField à la dernière bonne valeur
- 29. Comment renvoyer une valeur par défaut si une LINQ aux entités requête ne renvoie aucune valeur
- 30. C#: Renvoyer une référence?
Quel est votre code pour afficher 'form2'? – ChrisF