Transmission d'une variable entre les formulaires dans les formulaires Windows
Dans les applications Windows Forms, la transmission de données entre les formulaires peut être réalisée à l'aide de délégués et d'événements. Le problème survient lorsqu'un formulaire, le formulaire « enfant », nécessite d'accéder à une variable à partir du formulaire « parent ».
Pour résoudre ce problème, envisagez d'utiliser des délégués pour envoyer des données du formulaire parent au formulaire enfant. Dans le formulaire parent, définissez un délégué et un gestionnaire d'événements pour celui-ci. Lorsque vous cliquez sur le bouton pour ouvrir le formulaire enfant, créez un objet argument d'événement portant la valeur de la variable et déclenchez l'événement.
Dans le formulaire enfant, abonnez-vous à l'événement dans le constructeur. Lorsque l'événement se produit, récupérez la valeur de la variable à partir de l'objet argument d'événement. Modifiez les contrôles ou les propriétés du formulaire enfant pour afficher le texte variable de manière dynamique.
Voici un exemple de code en C# :
// Parent Form public partial class MainForm : Form { public delegate void PageInfoHandler(object sender, PageInfoEventArgs e); public event PageInfoHandler PageInfoRetrieved; private void toolStripBtnSettings_Click(object sender, EventArgs e) { PageInfoEventArgs args = new PageInfoEventArgs(SomeString); OnPageInfoRetrieved(args); SettingsForm settingsForm = new SettingsForm(); settingsForm.ShowDialog(); } private void OnPageInfoRetrieved(PageInfoEventArgs args) { if (PageInfoRetrieved != null) PageInfoRetrieved(this, args); } } // Child Form public partial class SettingsForm : Form { private string m_Data; // Variable to store the passed value public SettingsForm() { InitializeComponent(); Subscribe to PageInfoRetrieved event } private void OnPageInfoRetrieved(object sender, PageInfoEventArgs e) { m_Data = e.Value; // Update controls or properties in this form } public string Data => m_Data; // Expose the variable as a property }
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!