I think your
Control ctrl = new Control();
foreach (Control c in ctrl.Controls)
Should be
foreach (Control c in Panel1.Controls)
Also, you're talking about Enabled
property but you do not use it in your code. But from what you're saying, I don't think there will be textchanged events thrown if the textbox is be disabled.