wenn ich in einer UserForm zwei Textboxen erstelle, dann soll bei der
Ausführung die Textbox1 den Cursor enthalten und der Cursor soll blinken
(also zum Schreiben bereit sein). Welche Einstellung muss aktiv sein, damit
das Textfeld aktiviert ist ?
Dirk
Du kannst bei jedem Steuerelement den Tab-inbdex einstellen.
(unter einstellungen) Dieser Bestimmt die Reihenfolge der Markierung. Du
gibst einfach dem Steuerelement (z.B. deiner Textbox) die du als erstes
markiert haben willst den niedrigsten index.
alternativ kannst du mit text1.setfocus die Textbox anwählen.
MfG Viagrababy
Hallo Dirk!
Einfach im "Form.Load" Ereignis die Anweisung "Textbox1.setFocus" aufrufen
wenn keine anderen Gründe dagegen sprechen, kannst Du einfach die
Eigenschaften
Text1.TabIndex = 0
und
Text2.TabIndex = 1 (bzw. > 0)
schon zur Entwurfszeit setzen.
Damit bekommt automatisch die Textbox1 nach Abschluss des Ladevorgangs der
Form den Focus.
Falls irgendwelche Gründe gegen eine solche Verteilung der
TabIndex-Eigenschaft sprechen, kannst Du so vorgehen:
Option Explicit
Private mLoading
Private Sub Form_Load()
mLoading = True
End Sub
Private Sub Form_Activate()
If mLoading Then
Text1.SetFocus
mLoading = False
End If
End Sub
Da während des Ablaufs der Form_Load Prozedur die Form noch nicht oder nur
teilweise sichtbar ist würde ein Text1.SetFocus einen Fehler verursachen,
weil die Textbox1 noch nicht sichtbar ist.
Im Activate-Ereignis sind die Form und die darauf befindlichen Controls dann
sichtbar. Text1 kann jetzt also den Focus erhalten.
Das Activate - Ereignis kann aber nicht nur nach dem Laden, sondern auch
nach anderen Ereignissen auftreten. Um sicherzustellen, dass Text1.SetFocus
wirklich nur nach dem Laden der Form ausgeführt wird, steht in Form_Load
gleich am Anfang die Zeile mLoading = True.
In Form_Activate wird geprüft, ob mLoading = True ist und nur dann wird
Text1.SetFocus ausgeführt und mLoading anschliessend wieder auf False
rückgesetzt.
Grüsse aus St.Georgen im Chiemgau,
Peter Götz p.g...@gssg.de
www.gssg.de (mit VB-Tips u. Beispielprogrammen)
"Dirk Hennemann" <provinz...@t-online.de> schrieb im Newsbeitrag
news:uLueMDQAAHA.148@cppssbbsa04...
> Hallo,
>
> wenn ich in einer UserForm zwei Textboxen erstelle, dann soll bei der
> Ausführung die Textbox1 den Cursor enthalten und der Cursor soll blinken
> (also zum Schreiben bereit sein). Welche Einstellung muss aktiv sein,
damit
> das Textfeld aktiviert ist ?
>
> Dirk
>
>
Wenn Du die Textbox blinken lassen willst, hilft wahrscheinlich nur ein
Timer der beim laden Deiner Form gesetzt wird. Dann kannst Du die
Hintergrundfarbe der Textbox z.B. von Gelb auf Weiß wechseln lassen.
Zusätzlich setze den Focus auch die Textbox. Du kannst dann beim ersten
setzen einen Zeichens in der Textbox (in Chance-Ereignis) den Timer
(Timer=0) abschalten und die Hintergrundfarbe auf weiß setzen.
MfG
Udo
> > wenn ich in einer UserForm zwei Textboxen erstelle, dann soll bei der
> > Ausführung die Textbox1 den Cursor enthalten und der Cursor soll blinken
> > (also zum Schreiben bereit sein). Welche Einstellung muss aktiv sein,
> damit
> > das Textfeld aktiviert ist ?
> Wenn Du die Textbox blinken lassen willst, hilft wahrscheinlich nur ein
> Timer der beim laden Deiner Form gesetzt wird. Dann kannst Du die
> Hintergrundfarbe der Textbox z.B. von Gelb auf Weiß wechseln lassen.
> Zusätzlich setze den Focus auch die Textbox. Du kannst dann beim ersten
> setzen einen Zeichens in der Textbox (in Chance-Ereignis) den Timer
> (Timer=0) abschalten und die Hintergrundfarbe auf weiß setzen.
Er will aber den Cursor blinken lassen - und der tut das von ganz alleine.
Viele Grüße
Harald M. Genauck
ABOUT Visual Basic - das Webmagazin
http://www.aboutvb.de