title: Find a control in Windows Forms by name
body: <p>I am working on an application which add objects (basically <a href="http://en.wikipedia.org/wiki/Windows_Forms" rel="noreferrer">Windows Forms</a> controls) at run time from an XML file. The application needs to access the objects that have been added.</p>
  
  <p>The objects are added in a panel or in a groupbox. For the panel and groupbox, I have Panel.Controls["object_name"] to access the objects. This is only helpful when the object is directly added on the same panel. In my case the main panel [pnlMain, I have access to this panel only] may contain another panel and this panel [pnlChild] again contains a groupbox[gbPnlChild] and the groupbox contains a button [button1, I want to access this button]. I have the following method for this:</p>
  
  <pre><code>Panel childPanel = pnlMain.Controls["pnlChild"];
  GroupBox childGP = childPanel.Controls["gbPnlChild"];
  Button buttonToAccess = childGP["button1"];
  </code></pre>
  
  <p>The above method is helpful when parents are known. In my scenario, only the name of the object is known that is to be accessed [button1] and not its parents. So how do I access this object by its name, irrelevant of its parent?</p>
  
  <p>Is there a method like GetObject("objName") or something similar?</p>