使用委托和事件在 Windows 窗体之间传递变量
在这种情况下,您有一个主窗体和一个“设置”子窗体表单中,将变量传递给子表单的常见方法是通过使用委托和
第 1 步:初始化委托和事件
在主窗体中,创建一个委托和事件来处理数据传输:
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; }
第2步:在事件中传递变量处理程序
当您单击主窗体上的“设置”按钮时,使用要传递的变量创建一个事件参数实例并引发事件:
private void toolStripBtnSettings_Click(object sender, EventArgs e) { PageInfoEventArgs args = new PageInfoEventArgs(SomeString); this.OnPageInfoRetrieved(args); SettingsForm settingsForm = new SettingsForm(); settingsForm.ShowDialog(); }
第 3 步:检索子表单中的变量
在“设置”表单中,处理通过重写相应的事件处理程序来处理事件:
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; } } }
使用构造函数传递变量
或者,您也可以将变量直接传递给子级的构造函数form:
public partial class SettingsForm : Form { private string receivedText; public SettingsForm(string text) { this.receivedText = text; } }
在这种情况下,您将使用该变量创建子表单实例作为参数:
SettingsForm settingsForm = new SettingsForm(SomeString);
以上是如何使用委托和事件或构造函数在 Windows 窗体之间传递变量?的详细内容。更多信息请关注PHP中文网其他相关文章!