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.