Определение индексов компонента, вызвавшего событие - C#
Формулировка задачи:
Добрый вечер. Помогите, пожалуйста, решить проблему.
Динамически создаю двумерный массив кнопок, по нажатию на которые выполняются определённые действия. Так вот, после нажатию на одну из таких мне нужно определить её индексы. Если бы массив был одномерным, это можно было реализовать следующим образом:
Но в этом случае я получаю только один индекс.
Каким образом можно получить второй индекс кнопки?
Заранее спасибо.
int k = Convert.ToInt16((sender as Button).Tag);
Решение задачи: «Определение индексов компонента, вызвавшего событие»
textual
Листинг программы
public partial class Form1 : Form { Button[,] arr; public Form1() { InitializeComponent(); arr = new Button[,] { { button1, button2, button3 }, { button4, button5, button6 }, { button7, button8, button9 } }; for (int i = 0; i < arr.GetLength(0); i++) for (int j = 0; j < arr.GetLength(1); j++) { arr[i,j].Tag = new Tuple<int, int>(i,j); arr[i,j].Click += (s,e) => OnClick((Button)s, e); } } void OnClick(Button sender, EventArgs e) { Tuple<int,int> tuple = (Tuple<int,int>) sender.Tag; MessageBox.Show(string.Format("{0}:{1}", tuple.Item1, tuple.Item2)); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д