Maison > développement back-end > C++ > Comment transmettre des données entre Windows Forms à l'aide de délégués ?

Comment transmettre des données entre Windows Forms à l'aide de délégués ?

DDD
Libérer: 2025-01-03 19:18:42
original
779 Les gens l'ont consulté

How to Pass Data Between Windows Forms Using Delegates?

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);
Copier après la connexion

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);
    }
}
Copier après la connexion

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.
        // ...
    }
}
Copier après la connexion

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
    // ...
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal