¿Cómo me refiero a un control de formulario de Windows por nombre (C # / VB)?

Supongamos que tengo un control de etiqueta en un formulario de Windows llamado "UserName". ¿Cómo puedo referirme a esa etiqueta programáticamente usando el nombre de la etiqueta?

Por ejemplo puedo hacer:

For each ctrl as Control in TabPage.Controls
If ctrl.Name = "UserName" Then
' Do something
End If
Next

Esto parece bastante ineficiente. Me gustaría hacer algo como:

TabPage.Controls("UserName").Text = "Something"

Hice algo de googlear, pero no pude encontrar una respuesta satisfactoria. La mayoría de los bucles sugeridos, algunos dijeron que .NET 2005 no admite refenece directo usando el nombre de cadena, y el método FindControl era solo asp.net ...

EDITAR

Gracias por la respuesta hasta ahora. Aquí hay un poco más de detalle.

Tengo un formulario de ventanas con tres pestañas, todas las cuales son muy similares en diseño y función, es decir, los mismos menús desplegables, etiquetas, reaccionan de manera similar a los eventos, etc.

En lugar de escribir código para cada evento por pestaña, construí una clase que controla los eventos, etc. por pestaña.

Por ejemplo, en cada pestaña hay una etiqueta llamada "RecordCounter" que simplemente muestra el número de filas en la vista de datos cuando se llena con la selección de una variable en un menú desplegable.

Entonces, lo que quiero poder hacer es que, al seleccionar una variable en el menú desplegable, la vista de datos se llena de datos y luego simplemente quiero mostrar el número de filas en una etiqueta ("RecordCounter").

Este es exactamente el mismo proceso en cada página de pestañas, así que lo que estoy haciendo es pasar la página de pestañas a la clase y luego quiero poder consultar el "RecordCounter" y luego actualizarlo.

En mi clase, configuro la propiedad ActivePage para que sea la TabPage que el usuario ha seleccionado y luego quiero poder hacer algo como:

ActivePage.RecordCounter.Text = GetNumberOfRows()