在 Windows 窗体之间传递数据
在 Windows 窗体应用程序中管理多个窗体时,您可能会遇到需要在 Windows 窗体之间共享数据的情况他们。本文解决了将变量从主窗体传递到“设置”窗体的问题,从而允许新窗体显示该信息。
使用委托和事件处理程序
您在主表单中提供的代码使用委托和事件处理程序将数据发送到设置表单。委托是一种为具有特定输入和输出参数的方法定义签名的类型。通过将委托分配给事件处理程序,您可以注册事件发生时要调用的方法。
在这种情况下,主窗体创建一个带有 PageInfoEventArgs 类型的输入参数的委托 PageInfoHandler。 PageInfoEventArgs 类包含要传递到设置表单的数据(在本例中为字符串)。单击“设置”按钮时,将调用事件处理程序 (OnPageInfoRetrieved),该事件处理程序将调用已注册的方法(在本例中为 PageInfoRetrieved)。
检索设置表单中的数据
在设置表单中,您需要定义一个属性或方法,允许您访问从主表单传递的数据。在建议的解决方案中,使用构造函数将字符串传递到设置表单。此构造函数会将字符串存储在私有成员变量中,然后可以通过公共 getter 方法访问该字符串。
完整代码示例
完整代码示例如下如下:
MainForm.cs
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(SomeString); settingsForm.ShowDialog(); } private void OnPageInfoRetrieved(PageInfoEventArgs args) { if (PageInfoRetrieved != null) PageInfoRetrieved(this, args); } }
SettingsForm.cs
public class SettingsForm : WinForm { private string m_Data; public SettingsForm(string data) { m_Data = data; } public string Data { get { return m_Data; } } }
以上是如何使用委托和事件处理程序在 Windows 窗体之间传递数据?的详细内容。更多信息请关注PHP中文网其他相关文章!