我遇到了一个有关Windows窗体应用程序中的委托的问题。
有两种形式:
1.主窗体,其中有一个名为“设置”的按钮。
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;
// Other stuff, events, blah, blah
private void toolStripBtnSettings_Click(object sender, EventArgs e)
{
PageInfoEventArgs args = new PageInfoEventArgs(SomeString);
this.OnPageInfoRetrieved(args);
SettingsForm settingsForm = new SettingsForm();
settingsForm.ShowDialog();
}
private void OnPageInfoRetrieved(PageInfoEventArgs args)
{
if (PageInfoRetrieved != null)
PageInfoRetrieved(this, args);
}
}
5条答案
按热度按时间t30tvxxf1#
将您想要的任何信息传递给Settings窗体的构造函数,并为您需要的内容提供访问器方法。
在上面的“例子”中,你可以用一个字符串构造一个SettingForm,并得到一个它可能使用的整数。在您的代码中:
pbgvytdp2#
Settings窗体是一个类。它现在是你的了你想怎么处理都行。因此,向其构造函数添加一个参数(或任意数量)。然后在你的主窗体中调用SettingsForm(无论什么),你就万事俱备了。
fsi0uk1n3#
我建议在SettingsForm中添加一个属性。
然后,这样调用它:
kkbh8khc4#
您可以为接受文本的设置窗体创建一个参数化构造函数,并将其设置为窗体中的属性
然后,你只需要像这样初始化设置(从你的主窗体)
设置窗体将正确初始化,并且DisplayText属性中的所需文本已准备就绪
v9tzhpje5#
在你的设置表单中添加一个构造函数,它接受参数并传入你需要的任何数据。