J'ai deux formulaires (Form1 et Form2) que je souhaite passer une chaîne de caractères entre après la fin d'un processus sur Form1.Passage de données entre des formulaires à l'aide de gestionnaires d'événements personnalisés
Sur Form1, il existe une zone de texte que je voudrais mettre à jour avec cette chaîne de caractères. Sur Form2, j'ai une zone de liste qui contient les valeurs qui seront éventuellement chargées dans cette zone de texte sur Form1 après chaque processus qui se termine. Fondamentalement, ce que je suis en train de faire est de mettre en file d'attente la chaîne suivante qui sera placée dans la zone de texte sur Form1.
J'ai essayé la création d'une propriété publique à Form2 comme on le voit ci-dessous:
public string NextString { get { return ListBox1.Items[ListBox1.TopIndex].ToString(); } }
Puis, dans Form1:
Form2 frm = new Form2();
string next = frm.NextString;
TextBox1.Text = next;
Et presto. Sauf non. Cela ne fonctionnait pas pour moi, malheureusement. J'ai fait quelques recherches et j'ai vu que cette méthode n'était pas tout à fait la meilleure pratique et j'ai lu que l'utilisation de gestionnaires d'événements était l'approche la plus pratique. J'ai donc fait des recherches sur ceux-ci. Je sais que je dois créer une nouvelle classe EventArgs, un nouvel événement public, une méthode de déclenchement, comment je veux gérer l'événement, puis la méthode du gestionnaire dans Form1. This post is where I read into that.
J'ai joué avec la manipulation de la réponse en fonction de mes besoins:
public class StringEventArgs : EventArgs
{
public string NextString { get; set; }
public StringEventArgs(string data)
{
NextString = data;
}
}
Un nouvel événement:
public event EventHandler<ListEventArgs> NewFileAdded;
C'est là que je me suis perdu. J'ai du mal à comprendre ce qui se passe maintenant. Si quelqu'un peut m'aider à accomplir ce que j'essaie de faire, je serais très reconnaissant!
utilisez-vous MVVM, ou est-ce que tout ceci est fait derrière le code? –
Tout ceci est fait sur le fichier code-behind –
Quand est-ce que Form2 est ouvert? –