Angenommen, ich habe in einem Windows-Formular ein Label-Steuerelement mit dem Namen "UserName". Wie kann ich programmatisch auf diese Bezeichnung verweisen, indem ich den Bezeichnungsnamen verwende?
Zum Beispiel kann ich das:
For each ctrl as Control in TabPage.Controls
If ctrl.Name = "UserName" Then
' Do something
End If
Next
Das scheint ziemlich ineffizient zu sein. Ich würde gerne etwas tun wie:
TabPage.Controls("UserName").Text = "Something"
Ich habe ein wenig gegoogelt, konnte aber keine zufriedenstellende Antwort finden. Die meisten schlug Schleife, einige sagte .NET 2005 unterstützt keine direkte refenece mit String-Namen, und FindControl Methode war asp.net nur...
EDIT
Vielen Dank für die bisherigen Antworten. Hier ist ein bisschen mehr Detail.
Ich habe ein Windows-Formular mit drei Registerkarten, die alle in Design und Funktion sehr ähnlich sind, d.h. gleiche Dropdown-Menüs, Beschriftungen, Reaktion auf Ereignisse usw.
Anstatt Code für jedes Ereignis pro Registerkarte zu schreiben, habe ich eine Klasse erstellt, die die Ereignisse usw. pro Registerkarte steuert.
Zum Beispiel gibt es auf jeder Registerkarte ein Label namens "RecordCounter", das einfach die Anzahl der Zeilen in der Datentabelle anzeigt, wenn diese durch die Auswahl einer Variablen in einem Dropdown-Menü gefüllt wird.
Was ich also tun möchte, ist, bei der Auswahl einer Variablen im Dropdown-Menü, die datagridview füllt sich mit Daten, und dann möchte ich einfach die Anzahl der Zeilen in einem Label ("RecordCounter") anzuzeigen.
Dies ist genau der gleiche Prozess auf jeder Registerkarte, so was ich tue, ist die Übergabe der Registerkarte an die Klasse und dann möchte ich in der Lage sein, auf den "RecordCounter" zu verweisen und ihn dann zu aktualisieren.
In meiner Klasse setze ich die ActivePage-Eigenschaft auf die TabPage, die der Benutzer ausgewählt hat, und möchte dann in der Lage sein, etwas wie zu tun:
ActivePage.RecordCounter.Text = GetNumberOfRows()