不能在Form2中使用Form1中的int数组

时间:2015-08-24 23:53:34

标签: c#

我在Form1中有一个我需要在Form2中使用的int数组。但是当我尝试在Form2中使用数组值时,它会给我零。

private void button1_Click(object sender, EventArgs e)
{
    frm1 = new Form1();

    for (int i = 0; i < 26; i++) 
    {
       label1.Text += frm1.theCode[i];
    }
}

http://i59.tinypic.com/b4cf2b.png http://i59.tinypic.com/b4cf2b.png

但是当我在Form1中尝试相同的东西时,它的效果很棒!

private void button5_Click(object sender, EventArgs e)
{
   frm2 = new Form2();

   for (int i = 0; i < 26; i++) frm2.label1.Text += theCode[i]+ " ";

   frm2.Show();
}

http://i59.tinypic.com/jujthi.png http://i59.tinypic.com/jujthi.png

但我仍然需要在Form2中使用数组,而不是Form1

1 个答案:

答案 0 :(得分:0)

Form1中,您必须将int数组声明为静态字段和public,以便从另一个表单访问它。

这就是您在theCode

中声明Form1的方式
public static int[] theCode; // should be public and static

这就是你在Form2

中使用数组的方法
private void button1_Click(object sender, EventArgs e)
{
    // no need to create new instance of Form1.
    for (int i = 0; i < 26; i++) 
    {
       label1.Text += Form1.theCode[i]; // use the static field
    }
}