【发布时间】:2017-09-03 13:25:01
【问题描述】:
我最初在我的程序(form1)中声明了一个空的公共字符串数组,当单击按钮时,datagridview 单元格中的字符串被放入数组中!但是我发现很难将该数组的长度转换为另一个表单类(form2)
public partial class Form1 : Form
{
public string[] strarray;
public string order;
public Form1()
{
InitializeComponent();
}
public void button2_Click(object sender, EventArgs e)
{
var new1=dataGridView2.Rows[0].Cells[2].Value;
ordernew = new1.ToString();
strarray = ordernew.Split(',');
Form2 f2 = new Form2();
f2.Show();
}
}
使用split函数给数组赋值字符串成功! 在form2中代码如下!
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
Form1 f1 = new Form1();
for (int m = 0; m < f1.strarray.Length; m++)
{
label.Text="Hello";
}
}
}
但是当我运行程序时,我在 form2 的 for 循环中收到错误“对象引用未设置为对象的实例”!我该如何纠正这个问题?
【问题讨论】:
-
您正在 Form2_Load 中创建 Form1 的新实例。该实例与您从中打开 Form2 的实例不同。这就是为什么你会得到这个例外。您需要在打开 Form2 时将 Form1 的当前实例或数组本身发送到 Form2。
标签: c# arrays string forms runtime-error