Добрый день. Пишу приложение WinForms на Visual C++, столкнулся с проблемой объявления структуры, точнее вроде работает, но не так как хотелось, необходимо объявить массив структур глобально, на что компилятор не ругается, а когда смотрю отладчиком говорит что переменная не существует. Помогите пожалуйста разобраться.

объявляю структуру таким образом:

namespace ppc {

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

int ii;

typedef struct mystruct
{
int a;
int b;
}m;

mystruct my[100];


public ref class Form1 : public System::Windows::Forms::Form
{
public:
bool Check1, Check2;
int i;
private: System::Windows::Forms::Button^ button2;
public:
String ^Str;

Form1(void)
{
InitializeComponent();

}

protected:
/// <summary>
/// Освободить все используемые ресурсы.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:

private:
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

void InitializeComponent(void)
{
// Код конструктора....
.....
}


Функция в которой вызываю переменную:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
{

my[1].a = 3;
}


На что компилятор при отладке говорит что переменная my[1].a не существует.

но если сделать так:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
{
mystruct my2[100];
my2[1].a = 3;
}


Все работает, но переменная my2 является в таком случае локальной.

Пробовал объявлять в конструкторе таже проблема, и объявление в классе не помогает.