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; }
É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(); }
É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; } } }
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; } }
Dans ce cas, vous créeriez l'instance de formulaire enfant avec la variable comme argument :
SettingsForm settingsForm = new SettingsForm(SomeString);
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!