Нет, я не знаю ни одного события, которое возникает, когда любой элемент управления в форме изменяется.
Я бы посоветовал подписаться на каждое событие индивидуально (если ваша форма имеет так много элементов управления, что на самом деле это трудно сделать, вы можете пересмотреть свой пользовательский интерфейс).
Если вы абсолютно должны подписаться на изменения всех элементов управления, то вы можете рассмотреть что-то похожее на следующее:
foreach (Control c in this.Controls)
{
c.TextChanged += new EventHandler(c_ControlChanged);
}
void c_ControlChanged(object sender, EventArgs e)
{
}
Обратите внимание, что это не сработает особенно хорошо, если вы динамически добавляете и удаляете элементы управления в форму во время выполнения.
Кроме того, событие TextChanged
может не подходить для некоторых типов элементов управления (например, TextBoxes) - в этом случае вам нужно будет привести и проверить тип элемента управления, чтобы иметь возможность подписаться на правильное событие, например:
foreach (Control c in this.Controls)
{
if (c is CheckBox)
{
((CheckBox)c).CheckedChanged += c_ControlChanged;
}
else
{
c.TextChanged += new EventHandler(c_ControlChanged);
}
}