-1

我有两种形式:

表格 1 和表格 2

在 Form1 我有所有的值,在 Form2 我有一个图表。

如何在 Form2 中使用 form1 的值而不出现此错误?

我尝试使用此代码,但没有成功:

在表格 2 中:

public partial class Form2 : Form1
    {
        public Form2()
        {
            InitializeComponent();

        }
    }

在 Form1 中:

private void graphe_Click(object sender, EventArgs e)
        {
            Form f = new Form2();
            f.ShowDialog();
            Form f2 = new Form1();
            f2.Hide();
        }

在此处输入图像描述

4

2 回答 2

1

在 Form2 中创建构造函数,如

private Form1 _obj1;

public Form2(Form1 obj1)
{
    _obj1 = obj1;
}

现在您可以将 form1 的所有属性访问到 form2 中。

在创建 form1 的对象时,您可以使用在 form2 中创建的新构造函数,例如

Form f = new Form2(this);
f.ShowDialog();

不需要继承form1

于 2013-01-13T18:56:23.773 回答
0

尝试创建一些中间类并将其实例传递给 and 的重载构造函数Form2Form1例如:

public partial class Form2 : Form1
{
    public Form2(IList<string> storage) 
        : base(storage)
    {
        InitializeComponent();
    }
}

public partial class Form1 : Form
{
    protected readonly IList<string> _storage ;
    public Form1(IList<string> storage)
    {
        InitializeComponent();
        _storage = storage;
    }
}

用法:

var storage = new List<string>();
Form f = new Form2(storage);
f.ShowDialog();
Form f2 = new Form1(storage);
f2.Hide();

存储可能比List. 它也可以在其他对象之间共享,例如“Form3”等。

于 2013-01-13T19:02:56.327 回答