Einleitung
In VB.NET-Anwendungen, insbesondere bei der Verwendung von Userforms, ist es manchmal notwendig zu wissen, welches Textfeld gerade aktiv ist. Dies kann besonders hilfreich sein, wenn der Wert des aktiven Textfeldes in eine Zelle einer Tabelle geschrieben werden soll. In diesem Artikel erläutern wir, wie Sie das aktive Steuerelement in einem Userform ermitteln können.
Kern des Themas: Aktives Textfeld ermitteln
Zunächst stellt sich die Frage: Wie identifizieren wir das aktive Textfeld in einem Userform? Ein häufiger Irrglaube ist, dass dies durch Überprüfen von SetFocus
erfolgt. Tatsächlich lässt sich jedoch nicht direkt überprüfen, ob SetFocus
auf True
oder False
gesetzt ist.
Stattdessen nutzen wir die Eigenschaft Me.ActiveControl.Name
, um das aktuell aktive Steuerelement zu ermitteln. Diese Methode ist vielseitig einsetzbar und beschränkt sich nicht nur auf Textfelder.
Um ein bestimmtes Textfeld aktiv zu setzen verwendet man:
> Me.Textfeld1.SetFocus
Man kann aber nicht die überprüfen, ob SetFocus=True ist oder ob SetFocus=False ist, sondern man kann stattdessen auf die Funktion
> Me.ActiveControl.Name
zurückgreifen, um zu ermitteln welches Control aktuell aktiv ist. Das gilt nicht nur für Textfelder!.
Anwendungsbeispiel: Wert eines aktiven Textfeldes in eine Tabelle schreiben
Betrachten wir ein praktisches Beispiel: Wir möchten den Wert des aktiven Textfeldes in eine bestimmte Zelle einer Tabelle schreiben. Hierfür können wir folgenden Code verwenden:
Dieser Code überprüft zunächst, ob das aktive Steuerelement ein Textfeld (MSForms.TextBox
) ist. Ist dies der Fall, wird der Wert des Textfeldes in die Zelle A1 geschrieben.
Zusammenfassung
Die Ermittlung des aktiven Textfeldes in einem Userform ist eine einfache, aber mächtige Technik in VB.NET. Durch den Einsatz von Me.ActiveControl.Name
lässt sich jedes aktive Steuerelement identifizieren, was vielfältige Möglichkeiten in der Userform-Programmierung eröffnet.