Jak odwołać się do formantu formularza systemu Windows według nazwy (C # / VB)

Załóżmy, że mam formant etykiety w formularzu systemu Windows o nazwie „nazwa_użytkownika”. Jak mogę programowo odwołać się do tej etykiety przy użyciu nazwy etykiety?

Na przykład mogę zrobić:

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

Wydaje się to dość nieefektywne. Chciałbym zrobić coś takiego:

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

Zrobiłem kilka googli, ale nie mogłem znaleźć satysfakcjonującej odpowiedzi. Większość sugerowała zapętlanie, niektórzy twierdzili, że .NET 2005 nie obsługuje bezpośredniego refenece przy użyciu nazwy łańcucha, a metoda FindControl była tylko asp.net ...

EDYTOWAĆ

Dziękuję za odpowiedź. Oto trochę więcej szczegółów.

Mam formularz okien z trzema tabpages, z których wszystkie mają bardzo podobny wygląd i funkcję, tj. Takie same menu rozwijane, etykiety, reagują w podobny sposób na zdarzenia itp.

Zamiast pisać kod dla każdego zdarzenia na tabpage, zbudowałem klasę, która kontroluje zdarzenia itp. Na tabpage.

Na przykład na każdej karcie znajduje się etykieta o nazwie „RecordCounter”, która po prostu pokazuje liczbę wierszy w widoku datagridview, gdy jest wypełniany przez wybór zmiennej w rozwijanym menu.

Tak więc chcę, aby po wybraniu zmiennej w rozwijanym menu, datagridview wypełnił się danymi, a następnie po prostu chcę wyświetlić liczbę wierszy w etykiecie („RecordCounter”).

Jest to dokładnie ten sam proces na każdej zakładce, więc to, co robię, to przekazanie tabpage klasie, a następnie chcę móc odwołać się do „RecordCounter”, a następnie zaktualizować go.

W mojej klasie ustawiam właściwość ActivePage jako TabPage, którą wybrał użytkownik, a następnie chcę mieć możliwość:

ActivePage.RecordCounter.Text = GetNumberOfRows()

questionAnswers(6)

yourAnswerToTheQuestion