C # копирование или доступ к двумерному массиву из дочерней формы - PullRequest
1 голос
/ 01 апреля 2011

Я создал две формы в конструкторе, formA и formB, одна из которых является родительской формой по умолчанию, а вторая - модифицированной «about box».Мне нужно знать, как лучше всего получить данные двумерного массива в formB из formA, но до сих пор он работал только тогда, когда 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];
...

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 01 апреля 2011

Самый простой способ для меня - изменить конструктор дочерней формы (FormB) так, чтобы он принимал массив String в качестве параметра:

private string[,] arrayname;
public FormB(string[,] _arrayname)
{
this.arrayname = _arrayname;
}

и при создании своего экземпляра FormB:

formB f2 = new formB(arrayname);
f2.Show();
1 голос
/ 01 апреля 2011

сделать публичное свойство для FormB

public string [,] SomeArray {get;set;}

Затем установите его при отображении

FormB f = new FormB();
f.SomeArray = this.arrayname;
f.Show();

Затем в форме B

this.label1.Text = this.SomeArray[0,0];
0 голосов
/ 01 апреля 2011

Вероятно, проще всего было бы представить его как свойство в FormB примерно так:

public string[,] Hours { get; set; }

И установить его сразу после создания экземпляра:

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