assing button.click динамически, используя лямбду - PullRequest
0 голосов
/ 27 апреля 2020

Так что я хочу динамически создать несколько кнопок и определить их событие нажатия, так как я делаю это внутри 2 для, и мне нужны кнопка и 2 переменные, которые управляют, потому что я не могу вызвать функцию для обработки четного щелчка поэтому я использую лямбда-выражение (=>), чтобы сделать это.

это часть кода:

        Button retangulo;
        for (int i = 0; i < Jogo.tamanho; i++)
        {
            for (int j = 0; j < Jogo.tamanho; j++)
            {
                 retangulo = new Button()
                {
                    Name = "rectangle" + (i * Jogo.tamanho + j),
                    BackColor = Color.LightGray,
                    Location = new Point(9 + (j * 43), 20 + (i * 43)),
                    Size = new Size(40, 40),
                    FlatStyle = FlatStyle.Popup,
                };
                retangulo.Click += (obj,e) =>
                {
                    if (Jogo.tabuleiro[i, j].Bomba) retangulo.Image = Resources.download;
                    Jogo.tabuleiro[i, j].Numero = Jogo.Surroundings(Jogo.tabuleiro[i, j]);
                };
                groupBox2.Controls.Add(retangulo);
            }
        }

Проблема:

i и j всегда то же самое, я намерен изменить их согласно соответствующей позиции кнопки в массиве. Я предполагаю, что код, сохраняемый в событие click, - это, например, jo go .tabuleiro [i] [j] вместо jo go .tabuleiro [0] [0].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...