Необходим обработчик событий что отличит правую и левую кнопку мыши

Код на данный момент (часть .h файла)

    private: System::Void MyForm1_Load(System::Object^ sender, System::EventArgs^ e)
        {
            one = new Field;
            int p = 7, m = 10;
            n = &p;
            D = new Dot * [p];
            (*one).SetSize(p);
            (*one).SetMine(m); 
            this->Height = 47 * (p + 1);
            this->Width = 50 * p;
            msv = gcnew array<Button^>(p * p);

            for (int i = 0; i < p; i++)
            {
                D[i] = new Dot[p];
            }
            for (int i = 0; i < p; i++)
            {
                for (int j = 0; j < p; j++)
                {
                    if (D[i][j].Set_rand(m / (double)(p * p), *one))
                    {
                        D[i][j].SetMine();
                        D[i][j].SetAround(D, i, j, p);
                    }
                    msv[i] = gcnew Button();

                    msv[i]->Size = Drawing::Size(45, 45);
                    msv[i]->TabIndex = i*p+j;
                    msv[i]->Location = System::Drawing::Point(0 + 47 * i, 47 * j);
                    msv[i]->Image = Image::FromFile((L"C:\\Users\\User\\Desktop\\new\\-1.png"));
                    msv[i]->MouseClick += gcnew System::Windows::Forms::MouseEventHandler(this, &MyForm1::Button_MouseClick);

                    Controls->Add(msv[i]);
                }
            }
        }


    private: System::Void Button_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventHandler ^e)
    {
        if(1 == 1) (e->Button == System::Windows::Forms::MouseButtons::Right) 
        {
            int i = dynamic_cast<Button^>(sender)->Location.X / 47;
            int j = dynamic_cast<Button^>(sender)->Location.Y / 47;
            if (!D[i][j].Get_Visuable())
                if (!D[i][j].Get_Flag()) dynamic_cast<Button^>(sender)->Image = Image::FromFile((L"C:\\Users\\User\\Desktop\\new\\Flag.png"));
        }
        else {
            int i = dynamic_cast<Button^>(sender)->Location.X / 47;
            int j = dynamic_cast<Button^>(sender)->Location.Y / 47;
            if (!D[i][j].Get_Visuable())
                if (D[i][j].Get_Mine())
                {
                    dynamic_cast<Button^>(sender)->Image = Image::FromFile((L"C:\\Users\\User\\Desktop\\new\\mine.png"));
                    D[i][j].SetVisuable();
                }
                else
                    switch (D[i][j].Get_Around())
                    {
                    case 1:dynamic_cast<Button^>(sender)->Image = Image::FromFile((L"C:\\Users\\User\\Desktop\\new\\1.png")); break;
                    case 2:dynamic_cast<Button^>(sender)->Image = Image::FromFile((L"C:\\Users\\User\\Desktop\\new\\2.png")); break;
                    case 3:dynamic_cast<Button^>(sender)->Image = Image::FromFile((L"C:\\Users\\User\\Desktop\\new\\3.png")); break;
                    default: dynamic_cast<Button^>(sender)->Image = Image::FromFile((L"C:\\Users\\User\\Desktop\\new\\0.png"));
                        break;
                    }
        }
    }

(да, знаю: необходимо заменить цифры, адреса, обращение к массиву кнопок на макросы и вообще перенести это в соответствующий .cpp, но не об этом)

Ошибки что вызывает данный код:

При написании руководствовался (надеюсь кто-то лучше поймёт):

1. Создать обработчик событий
2. Изменение текста в кнопке щелчком правой кнопки мыши (Visual C++ 2010)
3. Обработка событий мыши

На данном ресурсе (русскоязычной части) вопросов на тему, соответствующих языку программирования не нашёл.


Ответы (0 шт):