@AltoStar
Студент

Как передать массив с одной формы в другую?

Создал 2 формы WinForms, хочу передать массив с одной формы во вторую.
Для этого в отдельном файле обьявил указатель на целое число, в первой форме я его заполняю, а во второй хочу его вывести.
Файл, в котором обьявлен указатель. Decl.h
#pragma once
#ifndef DECL
#define DECL

int *crit_arr;

#endif

Главная форма. MyForm.h
// 
#pragma once
#include "Decl.h"

// функция заполнения массива внутри класса MyForm
void get_Crit() {
			crit_arr[0] = crit_arr[3] = crit_arr[8] = 1;
			crit_arr[1] = Convert::ToInt32(textBox1->Text);
			crit_arr[2] = Convert::ToInt32(textBox2->Text);
			crit_arr[5] = Convert::ToInt32(textBox3->Text);
			crit_arr[3] = 1 / crit_arr[1];
			crit_arr[6] = 1 / crit_arr[2];
			crit_arr[7] = 1 / crit_arr[5];
		}
// Кнопка, по которой открывается вторая форма
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
		crit_arr = new int[9];
		get_Crit();
		CritTable^ F2 = gcnew CritTable(this);
		F2->Show();
	}

Вторая форма CritForm.h
#pragma once
#include "Decl.h" // ругается при наличии именно на этот include
// Конструктор, принимающий первую форму
public:
		CritTable(System::Windows::Forms::Form ^ frm)
		{
			InitializeComponent();
			mainform = frm;
		}
//  функция, которая вывод 1й элемент массива во второй форме.
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
		int arr[9];
		arr[0] = crit_arr[0];
		textBox1->Text = Convert::ToString(arr[0]);
	}

При таком раскладе при компиляции мне выбрасывает ошибку:
C2065: crit_arr: необьявленный идентификатор.

Если убрать с функции во второй форме все о массиве, то выбрасывает ошибку :
LNK1169 и LNK2005...
как посоветуете сделать?
  • Вопрос задан
  • 388 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы