Событие клика для матрицы кнопок

Я создаю массив кнопок, используя этот код.

        private void Prueba_Load(object sender, EventArgs e)
    {
        int num = Negocios_Categorias_Menu.NroCategorias();
        DataTable ListaCat;
        ListaCat = Negocios_Categorias_Menu.Mostrar();
        int vertical1 = num / 3;
        int vertical2 = num % 3;
        if (vertical2!=0)
        {
            vertical1 = vertical1 + 1;
        }
        Button[,] boton = new Button[15, 3];
        int z = 0;
        for (int i = 0; i < vertical1; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                if (z < num)
                {
                    boton[i, j] = new Button();
                    boton[i, j].Width = 100;
                    boton[i, j].Height = 100;
                    boton[i, j].Text = ListaCat.Rows[z]["Categoria_Menu"].ToString(); ;
                    boton[i, j].Top = i * 100;
                    boton[i, j].Left = j * 100;
                    groupBox1.Controls.Add(boton[i,j]);
                    z++;
                }
            }
        }
    }

Моя проблема заключается в том, что при создании события для нажатия на кнопки, я пробовал несколько решений, предложенных на этих форумах, но у меня не получилось, чтобы оно работало.

0
задан 14.01.2017, 06:46
0 ответов

Загрузь это вручную, загрузив кнопки следующего способа...

    ...
    Button[,] boton = new Button[15, 3];
    int z = 0;
    for (int i = 0; i < vertical1; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            if (z < num)
            {
                boton[i, j] = new Button();
                boton[i, j].Width = 100;
                boton[i, j].Height = 100;
                boton[i, j].Text = ListaCat.Rows[z]["Categoria_Menu"].ToString(); ;
                boton[i, j].Top = i * 100;
                boton[i, j].Left = j * 100;
                boton[i, j].Click += new EventHandler(this.GreetingBtn_Click);
                groupBox1.Controls.Add(boton[i,j]);
                z++;
            }
        }
    }
    ...

Немедленно ты создаешь метод, который делает событие....

     void GreetingBtn_Click(Object sender, EventArgs e)
     {
          // Cuando se le da click al boton,
          // solo le cambiaremos el texto y lo ponemos enabled.

          Button clickedButton = (Button)sender;
          clickedButton.Text = "Botón Click";
          clickedButton.Enabled = false;
     }

Протестируй это дело в том, что не, как я функционировал в договоренности, я это протестировал только для кнопки...

2
ответ дан 03.12.2019, 17:41