Я изучаю обработчики событий и делегатов. У меня есть одна форма с 4 текстовыми полями и списком. Я хотел бы иметь делегата, который прослушивает изменения текстового поля в ЛЮБОМ из 4 полей. Метод, связанный с делегатом, будет просто методом, который принимает текстовое значение измененного текстового поля и добавляет его в качестве нового элемента списка. Мой вопрос заключается в том, как написать делегата для прослушивания всех текстовых полей, и когда я вызываю функцию для добавления элемента списка, как я могу передать объект текстового поля, поскольку я не буду явно знать, какой из них вызвал событие? Будет ли это содержаться в EventArgs e?
Вместо использования нескольких обработчиков событий:
this.textBo1.TextChanged += txt_TextChanged;
this.textBo2.TextChanged += txt_TextChanged;
this.textBo3.TextChanged += txt_TextChanged;
this.textBo4.TextChanged += txt_TextChanged;
Я хотел бы что-то вроде:
public delegate ListenToTextBoxes(object sender, EventArgs e);
Возможно, это не имеет смысла, так как я новичок в делегатах, но мне кажется разумным, что я должен иметь возможность заставить одного делегата слушать элементы управления текстовым полем в целом, а затем, когда он вызывает событие, я бросаю отправителя объекта и получить текст текстового поля. Но как мне создать делегата, чтобы он прослушивал ТОЛЬКО текстовые поля или другие типы элементов управления?