A different kind of key altogether: keyed collections
In most of the commonly used collections in Windows Forms 2.0, you'll find that they also take a string in addition to an integer index. The string corresponds to the "Name" property on the corresponding item.
this.button1 = new System.Windows.Forms.Button();
this.button1.Name = "button1";
panel1.Controls.Add(button1);
panel1.Controls["button1"].BackColor = Color.Blue;
Note: this lookup is slightly less efficient than using an index directly - so if you have it use it!
Additionally, some collections now have a "Find" method, the string representing the name and the boolean representing whether or not to "search all children".
panel1.Controls.Find("button1", true)
Or perhaps more interestingly:
this.menuStrip1.Items.Find("copyToolStripMenuItem", true)
So there you go, perhaps not as interesting as all the fancy new collections in System.Collections.Generic - but occasionally super handy.