Когда вы создаете массив элементов управления в C #, как вы можете привязать функцию, которая получает индекс нажатой кнопки, к их событию click?
Вот некоторый код, предназначенный исключительно для лучшего понимания. Где-то в верхней части кода вы определяете кнопки:
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, которые содержат индекс нажатой кнопки; но я не добился успеха из-за недостатка знаний C #.
Если кто-то из вас собирается предложить сохранить индекс каждого элемента управления в его теге: Да, это было возможно, но я не хочу использовать его по какой-то причине, поскольку, если у вас есть класс, который генерирует некоторые события, но не у него нет свойства Tag или чего-то подобного, этот способ бесполезен.