首页 >后端开发 >C++ >如何在 Windows 窗体应用程序中的窗体之间传递变量?

如何在 Windows 窗体应用程序中的窗体之间传递变量?

Patricia Arquette
Patricia Arquette原创
2025-01-01 10:28:11265浏览

How Can I Pass a Variable Between Forms in Windows Forms Applications?

在 Windows 窗体中的窗体之间传递变量

在 Windows 窗体应用程序中,可以使用委托和事件来实现在窗体之间传递数据。当一种表单(“子”表单)需要从“父”表单访问变量时,就会出现问题。

要解决此问题,请考虑利用委托将数据从父表单发送到子表单。在父窗体中,为其定义委托和事件处理程序。当单击打开子窗体的按钮时,创建一个携带变量值的事件参数对象并引发事件。

在子窗体中,在构造函数中订阅事件。当事件发生时,从事件参数对象中检索变量值。修改子窗体的控件或属性以动态显示可变文本。

以下是 C# 示例代码:

// Parent Form
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();
        settingsForm.ShowDialog();
    }

    private void OnPageInfoRetrieved(PageInfoEventArgs args)
    {
        if (PageInfoRetrieved != null)
            PageInfoRetrieved(this, args);
    }
}

// Child Form
public partial class SettingsForm : Form
{
    private string m_Data; // Variable to store the passed value

    public SettingsForm()
    {
        InitializeComponent();
        Subscribe to PageInfoRetrieved event
    }

    private void OnPageInfoRetrieved(object sender, PageInfoEventArgs e)
    {
        m_Data = e.Value;
        // Update controls or properties in this form
    }

    public string Data => m_Data; // Expose the variable as a property
}

以上是如何在 Windows 窗体应用程序中的窗体之间传递变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn