Maison > développement back-end > C++ > Comment transmettre des variables entre des formulaires Windows à l'aide de délégués et d'événements ou de constructeurs ?

Comment transmettre des variables entre des formulaires Windows à l'aide de délégués et d'événements ou de constructeurs ?

Barbara Streisand
Libérer: 2025-01-03 21:34:39
original
122 Les gens l'ont consulté

How to Pass Variables Between Windows Forms Using Delegates and Events or Constructors?

Transmission de variables entre des formulaires Windows Forms à l'aide de délégués et d'événements

Dans ce scénario, où vous avez un formulaire principal et un enfant "paramètres" formulaire, une approche courante pour transmettre une variable au formulaire enfant consiste à utiliser des délégués et événements.

Étape 1 : initialiser un délégué et un événement

Dans votre formulaire principal, créez un délégué et un événement pour gérer le transfert de données :

public partial class MainForm : Form
{
    /// <summary>
    /// Delegate to send data between forms
    /// </summary>
    public delegate void PageInfoHandler(object sender, PageInfoEventArgs e);

    /// <summary>
    /// Event of the delegate
    /// </summary>
    public event PageInfoHandler PageInfoRetrieved;
}
Copier après la connexion

Étape 2 : Transmettez la variable dans le gestionnaire d'événements

Lorsque vous cliquez sur le Bouton "Paramètres" sur le formulaire principal, créez une instance d'argument d'événement avec la variable que vous souhaitez transmettre et déclenchez l'événement :

private void toolStripBtnSettings_Click(object sender, EventArgs e)
{
    PageInfoEventArgs args = new PageInfoEventArgs(SomeString);
    this.OnPageInfoRetrieved(args);

    SettingsForm settingsForm = new SettingsForm();
    settingsForm.ShowDialog();
}
Copier après la connexion

Étape 3 : Récupérez la variable dans le formulaire enfant

Dans votre formulaire "paramètres", gérez l'événement en remplaçant l'événement correspondant handler :

public partial class SettingsForm : Form
{
    protected override void OnShown(EventArgs e)
    {
        base.OnShown(e);

        // Retrieve the event arguments
        PageInfoEventArgs args = this.Tag as PageInfoEventArgs;
        if (args != null)
        {
            // Access the passed variable
            string receivedText = args.PageInfo;
        }
    }
}
Copier après la connexion

Utilisation d'un constructeur pour transmettre des variables

Alternativement, vous pouvez également transmettre la variable directement au constructeur du formulaire enfant :

public partial class SettingsForm : Form
{
    private string receivedText;

    public SettingsForm(string text)
    {
        this.receivedText = text;
    }
}
Copier après la connexion

Dans ce cas, vous créeriez l'instance de formulaire enfant avec la variable comme argument :

SettingsForm settingsForm = new SettingsForm(SomeString);
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal