0

我正在尝试从一个发送数据的按钮和一个只查看表单的菜单栏按钮访问表单,没有传输数据。

发送数据我的类名是:

    public xSecForm(string dataRecieved)
    {
        InitializeComponent();

        xSavedList.Text = dataRecieved;
    }

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

我见过其他帮助说要放

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

在菜单按钮中只显示没有数据传递的窗口,但是由于表单末尾的 (string dataRecieved) 它不断给我错误。

我希望有一种方法可以在不改变数据发送方式的情况下做到这一点。

4

1 回答 1

3

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

1)您可以为您的第二种形式有 2 个构造函数。一种是默认的(不会传入数据),另一种是允许你传入一个字符串。

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();

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

于 2013-08-23T02:14:50.807 回答