Не удается получить доступ к массиву в новой форме, C#
Дорогие Все,
Я немного застрял со своим проектом, и мне нужна небольшая помощь. Я использую Visual Studio 2017 для C#.
В основном моя проблема заключается в том, что я не могу получить доступ к массиву в форме 2, который создается в форме 1. Но проблема немного забавная. Я создаю матрицу в форме 1, которая будет использоваться в качестве растрового изображения в форме 2. Поэтому я генерирую некоторую матрицу в форме 1 на основе некоторых экспериментальных данных, а затем я могу передать этот массив и количество его столбцов и строк в форму 2, а затем я могу показать его там в виде растрового изображения.
У меня также есть небольшой фрагмент кода, который показывает координаты X и Y изображения, если я нажимаю на него. Это очень важно для меня, потому что на основе этих координат я могу искать значения в разных других массивах. У меня есть один массив, который составляет изображение в виде растрового изображения, но я назначаю много других данных для каждого пикселя и хочу хранить их в разных массивах.
Каков самый простой способ сделать массив и его значения видимыми в Form2? Я не хочу редактировать массивы из Form2, я просто хочу иметь возможность читать их. Поэтому, когда я нажимаю на картинку, я могу посмотреть значения, соответствующие координатам.
Спасибо Вам за помощь и советы!
Что я уже пробовал:
В форме 1 эта часть кода работает:
Form2 newForm2 = new Form2(); //initialize a new form = Form2 newForm2.ShowSLImg(ROWS, COLUMNS, array2D); //pass the values to the Form2's function newForm2.Show(this); //show the form2.
Затем в Form2 я использую функцию:
public void ShowSLImg(int _row, int _column, double[,] aarray2D) {...dosomething...}
Таким образом, я могу передать array2D и строки, столбцы в Form2, и я могу работать с ним, и на основе значений array2D я могу показать растровое изображение в Form2.
В этой части кода я могу получить координаты положения мыши, а также я могу сделать что-то на основе цвета. Но я хотел бы расширить эту функцию и иметь возможность искать различные массивы на основе координат x,Y.
public void pictureBox1_MouseClick(object sender, MouseEventArgs e) { Color color = image2.GetPixel(e.X, e.Y); //Get the pixel color as RGB double Red = color.R; //Get only the RED color label1.Text = (Red / 255).ToString(); int _x = Convert.ToInt32(e.X); int _y = Convert.ToInt32(e.Y); TextBox.Text += "X: "+_x.ToString() + " Y: " + _y.ToString() +Environment.NewLine; }