Когда вы создаете массив элементов управления в C#, как вы можете связать функцию, которая получает индекс нажатой кнопки, с их событием щелчка?
Вот некоторый код исключительно для лучшего понимания. Где-то поверх кода вы определяете кнопки:
Button [] buttons = new Button[100];
Стандартное событие Click для них выглядит так:
private void myClick(object sender, EventArgs e)
{
}
И обычно вы связываете это так:
for (int i = 0; i < 100; i++)
buttons[i].Click += myClick;
Но я хочу, чтобы обработчик событий был в такой форме:
private void myClick(int Index)
{
}
Как мне привязать события кликов к вышеуказанной функции с/без промежуточных функций?
Я думал об использовании делегатов, нотации Func<T, TResult>
или каким-то образом передать пользовательский EventArgs, который содержит индекс нажатой кнопки; но у меня не получилось из-за отсутствия достаточных знаний С#.
Если кто-то из вас собирается предложить сохранить индекс каждого элемента управления в его теге: да, это было возможно, но я не хочу его использовать по какой-то причине, поскольку, если у вас есть класс, который генерирует некоторые события, но не имеет Пометьте свойство или что-то в этом роде, этот способ бесполезен.