C#从子窗体复制或访问二维数组

C#从子窗体复制或访问二维数组,c#,forms,parent-child,multidimensional-array,C#,Forms,Parent Child,Multidimensional Array,我在设计器中创建了两个表单,formA和formB,一个是默认的父表单,后者是修改后的“关于框”。我需要知道从formA中获取二维数组数据到formB的最佳方法,但到目前为止,我只是在formA被无意中与formB一起第二次打开时才让它“起作用” 目前的基本准则是: // Form A (onload) public string[,] arrayname = new string[5, 2] { some values }; // Form A (onevent) formB f2 = new

我在设计器中创建了两个表单,formA和formB,一个是默认的父表单,后者是修改后的“关于框”。我需要知道从formA中获取二维数组数据到formB的最佳方法,但到目前为止,我只是在formA被无意中与formB一起第二次打开时才让它“起作用”

目前的基本准则是:

// Form A (onload)
public string[,] arrayname = new string[5, 2] { some values };
// Form A (onevent)
formB f2 = new formB(arrayname);
f2.Show();

// Form B (onload)
???
label1.Text = arrayname[0, 0];
label2.Text = arrayname[0, 1];
label3.Text = arrayname[1, 0];
...

提前谢谢

最简单的方法可能是在
FormB
中将其作为属性公开,如下所示:

public string[,] Hours { get; set; }
并在创建实例后立即进行设置:

FormB myFormB = new FormB();
myFormB.ArrayName = new string[5, 2] { some values };

FormB

public string [,] SomeArray {get;set;}
然后在显示时设置它

FormB f = new FormB();
f.SomeArray = this.arrayname;
f.Show();
然后是表格B

this.label1.Text = this.SomeArray[0,0];

对我来说,最简单的方法是更改子窗体(FormB)构造函数以接受字符串数组作为参数:

private string[,] arrayname;
public FormB(string[,] _arrayname)
{
this.arrayname = _arrayname;
}
当您创建FormB实例时:

formB f2 = new formB(arrayname);
f2.Show();

+1这可能就是我设计它的方式。此外,我还将默认构造函数设为私有,以通信
arrayName
需要值才能使表单有用
private FormB(){}
这似乎是在分析错误WindowsFormsApplication1.FormB不包含“arrayname”的定义,并且找不到接受“WindowsFormsApplication1.FormB”类型的第一个参数的扩展方法“arrayname”(是否缺少using指令或程序集引用?)编辑了我的答案。您需要首先为
FormB
创建一个属性。