This recursive function finds a control on a form by its name.
//written in C#
/// <summary>
///Recursive function to find control on the form by its name
/// </summary>
private Control _co;
private Control _find_control(Control _c, string _name)
{
if (_co != null) return _co;
IEnumerator _ir = _c.Controls.GetEnumerator();
_ir.Reset();
while (_ir.MoveNext())
{
if (_co != null) break;
if (((Control)_ir.Current).Name == _name)
{
_co = ((Control)_ir.Current);
break;
}
_find_control(((Control)_ir.Current),_name);
}
return _co;
}
//usage examples
Form1 _fm = (Form1)this.FindForm();
_co = null;
DataGrid _dg = (DataGrid)_find_control((Control)_fm,"GRID1");
_co = null;
Label _lbl = (Label)_find_control((Control)_fm,"Label1");