为了账号安全,请及时绑定邮箱和手机立即绑定

在winform之间传递变量

在winform之间传递变量

智慧大石 2019-12-06 15:10:02
我在Windows.Forms应用程序中遇到有关委托的问题。有两种形式:主窗体,其中有一个名为“设置”的按钮。“设置”形式,这是“子”形式。当我单击主窗体中的“设置”按钮时,它将打开“设置”窗体的一个实例。我的问题是,当我打开变量时,需要将其传递给“设置”表单。这样新表单将显示变量文本。我不知道如何在子“设置”表单中检索信息。我通过遵循在线教程来做到这一点,但无法从教程中了解如何读取目标表单中的信息。到目前为止,这是我做的主要形式的代码: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 blabla    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);    }}
查看完整描述

3 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

将所需的任何信息传递到“设置”表单的构造函数中,并提供所需的访问器方法。


public class SettingsForm : WinForm

{

    private string m_Data;

    private int m_nExample = 0;


    // ctor

    public SettingsForm(string _data)

    {

        m_Data = data;  // you can now use this in SettingsForm

    } // eo ctor


    public int Example {get{return(m_nExample);} }

} // eo class SettingsForm

在上面的“示例”中,您可以使用字符串构造一个SettingForm并获取它可能使用的整数。在您的代码中:


private void toolStripBtnSettings_Click(object sender, EventArgs e)

{

    PageInfoEventArgs args = new PageInfoEventArgs(SomeString);

    this.OnPageInfoRetrieved(args);


    SettingsForm settingsForm = new SettingsForm("some data to pass");

    settingsForm.ShowDialog();  


    int result = settingsForm.Example; // retrieve integer that SettingsForm used

}


查看完整回答
反对 回复 2019-12-06
?
长风秋雁

TA贡献1757条经验 获得超7个赞

结算表格是一个类。现在是您的事了,您可以使用它来做自己喜欢的事。因此,向其构造函数添加参数(或任意多个参数)。然后在MainForm中调用SettingsForm(无论如何),就一切就绪。


查看完整回答
反对 回复 2019-12-06
  • 3 回答
  • 0 关注
  • 500 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信