Привет, мне было интересно, как я могу следить за всем textboxes
в форме, было ли в любом из них изменено значение. Я видел некоторый код hereНазначение события TextChanged для всех текстовых полей в форме
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is TextBox)
{
TextBox tb = (TextBox)ctrl;
tb.TextChanged += new EventHandler(tb_TextChanged);
}
}
}
void tb_TextChanged(object sender, EventArgs e)
{
TextBox tb = (TextBox)sender;
tb.Tag = "CHANGED"; // or whatever
}
И парень, который написал этот код говорит, что «не может быть назначен в текстовые поля панели и Grouboxes».
Итак, мой вопрос заключается в том, что у меня почти все текстовые поля в groubox или панели, как я могу узнать, было ли внесено изменение для текстовых полей в панелях или групповом поле?
Вы уже пробовали? – meilke
Я думаю, что единственная причина, по которой это не сработает, - это то, что вы не итерируете детей 'this.Controls'. То есть Form -> Panel -> TextBox, поэтому вам нужно сделать свой цикл рекурсивным и проверить всех детей детей и т. Д., Чтобы проверить все текстовые поля в форме. – Belogix