It's always nice when you spend time reinventing the wheel when you don't need to.
For example, take my recent post on associating a label to an ASP.NET mangled control name.
Turns out the functionality is built into ASP.NET.
Let's say you have the following ASP.NET code...
<asp:label runat="server" text="Search" /><asp:textbox id="query" runat="server" />
...and you want to link the Label to the TextBox. Set the AssociatedControlID property on the Label and it will automatically handle mangled control names for you.
<asp:label runat="server" text="Search" AssociatedControlID="query" /><asp:textbox id="query" runat="server" />
I'm still going to leave up my original post because knowing how to recursively work with HtmlControls is a good thing, but I hate it when I miss something this obvious.