Transmission de données entre les formulaires Windows
Dans les applications Windows Forms, il est souvent nécessaire de partager des données entre plusieurs formulaires. Lorsqu'un formulaire en ouvre un autre, il peut être nécessaire de transmettre des informations spécifiques que le nouveau formulaire pourra utiliser. Une approche courante pour y parvenir consiste à utiliser des délégués.
Description du problème
Dans un scénario spécifique, un formulaire principal comporte un bouton nommé « Paramètres » qui ouvre un formulaire enfant. appelé « Formulaire de paramètres ». L'exigence est de transmettre une variable au formulaire de paramètres lors de son ouverture afin que la valeur de la variable puisse être affichée dans le nouveau formulaire.
Approche déléguée
Pour résoudre Pour résoudre ce problème, vous pouvez définir un délégué dans le formulaire principal qui accepte un gestionnaire d'événements personnalisé. Le gestionnaire d'événements, à son tour, transmet la variable au formulaire enfant via une classe d'arguments d'événement.
Dans l'extrait de code que vous avez fourni, le délégué et l'événement suivants sont définis dans la classe MainForm :
public partial class MainForm : Form { public delegate void PageInfoHandler(object sender, PageInfoEventArgs e); public event PageInfoHandler PageInfoRetrieved; ... }
La classe PageInfoEventArgs doit être définie pour contenir la valeur de la variable :
public class PageInfoEventArgs : EventArgs { public string SomeString; public PageInfoEventArgs(string someString) { SomeString = someString; } }
Lorsque le bouton "Paramètres" est cliqué dans le formulaire principal, une instance de PageInfoEventArgs est créée avec la valeur de la variable et l'événement PageInfoRetrieved est déclenché. Le gestionnaire d'événements dans le formulaire de paramètres recevra alors la variable et pourra l'utiliser pour afficher la valeur.
Approche du constructeur
Une autre approche consiste à transmettre la variable en tant que paramètre au constructeur du formulaire de paramètres. Le formulaire peut alors utiliser le paramètre constructeur dans sa logique.
Par exemple, vous pourriez avoir :
public class SettingsForm : Form { private string _variable; public SettingsForm(string variable) { _variable = variable; } ... // Use _variable as needed }
Dans le MainForm, vous créeriez le formulaire de paramètres comme :
SettingsForm settingsForm = new SettingsForm("value"); settingsForm.ShowDialog();
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!