从两种不同的方法调用窗体

本文关键字:方法 调用 窗体 两种 | 更新日期: 2023-09-27 18:28:39

我正试图通过一个发送数据的按钮和一个只查看表单而不传输数据的菜单条按钮访问表单。

要发送数据,我有一个类名:

    public xSecForm(string dataRecieved)
    {
        InitializeComponent();
        xSavedList.Text = dataRecieved;
    }

这允许我在第一个按钮上发送数据。

我看到其他人说要放

    xSecForm f2 = new xSecForm()
    f2.Show();

在菜单按钮中只显示窗口而不传递数据,但由于(字符串数据接收)在表单的末尾,它不断给我错误。

我希望有一种方法可以做到这一点,而不会改变数据的发送方式。

从两种不同的方法调用窗体

您可以尝试几种方法,每种方法都有其优点和缺点。

1) 第二个表单可以有两个构造函数。一个是默认的(不会传入数据),另一个允许传入字符串。

public xSecForm(string dataReceived)
{
    InitializeComponent();
    xSavedList.Text = dataReceived;
}
public xSecForm()
{
    InitializeComponent();
}

通过这种方式,您可以创建第二个表单的新实例,无论是否发送字符串。缺点是,您只能在第一次创建对象时传入数据。

2) 在第二个表单中创建一个公共属性,以允许第一个表单在其自身中注入数据。第二种形式:

public string SavedListData
{
    set { xSavedList.Text = value; }
    get { return xSavedList.Text; }
}

然后在你的主窗体上(假设你有一个默认的构造函数)

xSecForm f2 = new xSecForm();
f2.SavedListData = "asdf";
f2.Show();

这种方法的好处是,您可以随时获取/设置数据,即使在加载并使用了第二种形式之后也是如此。