Мне было трудно выяснить, как искать/фразы, что я хочу достичь. Я смотрю, есть ли более безопасный/более умный способ достичь следующего примера.Дифференциация между несколькими объектами, прикрепленными к одному и тому же обработчику событий
Допустим, у меня есть 3 кнопки с названиями:
btnOne
btnTwo
btnThree
Цель каждой кнопки, чтобы написать уникальную строку в какой-то текстовое поле при нажатии. Поскольку все три кнопки выполняют очень похожее действие, кажется логичным создать один обработчик событий для всех трех, но что будет разумным способом для разграничения между тремя кнопками, чтобы правильное текстовое поле могло получить правильную строку? Мне не нравится текущий путь я собираюсь об этом:
псевдо, псевдо код:
private void Clicked(object sender, EventArgs e)
{
string buttonName = (sender as Button).Name;
switch(buttonName)
{
case "btnOne":
tbOne.Text = "This text is from button one";
break;
case "btnTwo":
tbTwo.Text = "This is some different text";
break;
case "btnThree":
tbThree.Text = "Button three text";
break;
}
}
Другой способ будет иметь на клик обработчик событий для каждой кнопки, которая затем имеет общий метод, как:
private void AfterButtonClicked(Textbox tb, string text)
{
tb.Text = text;
}
Является ли это WinForms? Если это так, все элементы управления имеют свойство 'tag' типа' object', чтобы вы могли вставлять все, что хотите. Это может быть так же просто, как установить свойство «tag» на каждой кнопке, и когда он щелкнут, получите значение от него и выведите его. – Justin