Transmission de données entre Windows Forms à l'aide de délégués
Dans une application Windows Forms, lorsque vous travaillez avec plusieurs formulaires, il devient souvent nécessaire de transmettre des données entre eux. Une approche courante pour y parvenir consiste à recourir aux délégués. Voici comment implémenter la transmission de données à l'aide de délégués :
Création du délégué
Tout d'abord, vous devez créer un délégué qui servira de méthode de rappel pour le transfert de données. En C#, cela peut être fait comme suit :
public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);
Ce délégué déclare une méthode qui prend deux paramètres : un objet expéditeur (généralement le formulaire qui envoie les données) et un objet argument d'événement (qui contient le véritable data).
À l'aide du délégué
Dans le formulaire principal, vous pouvez créer une instance du délégué et déclenchez l'événement chaque fois que vous souhaitez transmettre des données au formulaire enfant. Par exemple :
public partial class MainForm : Form { // Declare the delegate instance public event PageInfoHandler PageInfoRetrieved; private void toolStripBtnSettings_Click(object sender, EventArgs e) { PageInfoEventArgs args = new PageInfoEventArgs(SomeString); this.OnPageInfoRetrieved(args); SettingsForm settingsForm = new SettingsForm(); settingsForm.ShowDialog(); } private void OnPageInfoRetrieved(PageInfoEventArgs args) { if (PageInfoRetrieved != null) PageInfoRetrieved(this, args); } }
Récupération des données
Dans le formulaire enfant (dans ce cas, le SettingsForm), vous pouvez vous abonner à l'événement délégué pour recevoir le données. Cela peut être fait dans le constructeur du formulaire enfant ou dans son code d'initialisation. Par exemple :
public class SettingsForm : Form { public SettingsForm() { // Subscribe to the delegate event if (MainForm.PageInfoRetrieved != null) MainForm.PageInfoRetrieved += new PageInfoHandler(OnPageInfoRetrieved); } private void OnPageInfoRetrieved(object sender, PageInfoEventArgs e) { // This method will be called when the PageInfoEventArgs is raised // in the main form. You can access the data from the event argument here. // ... } }
Utilisation des données
Une fois que vous avez récupéré les données dans le formulaire enfant, vous pouvez utiliser les arguments d'événement fournis pour accéder aux données réelles . Dans cet exemple, les données sont transmises en tant que propriété de l'objet PageInfoEventArgs. Par exemple, vous pouvez l'utiliser comme ceci :
// In the SettingsForm private void DisplayData() { // Get the data from the event arguments string data = e.Data; // Display or use the data in the child form // ... }
En suivant ces étapes, vous pouvez transmettre efficacement des données entre plusieurs Windows Forms à l'aide de délégués, permettant ainsi la communication et l'échange de données entre les formulaires de votre application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!