Focus in einer MDI Anwendung

23/03/2010 - 09:07 von Johann | Report spam
Hallo,

meine Umgebung VS2008 und WinXP

Das Problem:

Win Form MDI Anwendung.

In frmMDIMain habe ich TreeView mit Knoten1 (öffnet frmSub1) und Knoten2
(öffnet frmSub2). Im Ereignis frmSub2_Load () fokussiere ich auf ein Textfeld
txtArtikelnummer:

Me.txtArtikelnummer.focus()

Leider nach dem öffnen der frmSub2 bleibt der Focus auf dem TreeView Knoten2
stehen (blau Hervorgehoben), der Cursor ist nirgends auf der frmSub2 zu
sehen. Erst nach dem Betàtigen der TAB taste wird „txtArtikelnummer“
fokussiert und die Eingabe kann erfolgen.
Das betàtigen der TAB Taste möchte ich aber vermeiden und den Focus schon
beim frmSub2 öffnen auf dem Textfeld „txtArtikelnummer“ setzen.

Was mache ich falsch?

Danke
Johann
 

Lesen sie die antworten

#1 Armin Zingler
23/03/2010 - 12:56 | Warnen spam
Am 23.03.2010 09:07, schrieb Johann:
Hallo,

meine Umgebung VS2008 und WinXP

Das Problem:

Win Form MDI Anwendung.

In frmMDIMain habe ich TreeView mit Knoten1 (öffnet frmSub1) und Knoten2
(öffnet frmSub2). Im Ereignis frmSub2_Load () fokussiere ich auf ein Textfeld
txtArtikelnummer:

Me.txtArtikelnummer.focus()

Leider nach dem öffnen der frmSub2 bleibt der Focus auf dem TreeView Knoten2
stehen (blau Hervorgehoben), der Cursor ist nirgends auf der frmSub2 zu
sehen. Erst nach dem Betàtigen der TAB taste wird „txtArtikelnummer“
fokussiert und die Eingabe kann erfolgen.
Das betàtigen der TAB Taste möchte ich aber vermeiden und den Focus schon
beim frmSub2 öffnen auf dem Textfeld „txtArtikelnummer“ setzen.

Was mache ich falsch?



Du setzt den Fokus im Load-Ereignis. Zu diesem Zeitpunkt sind nicht die Bedingungen
gegeben (s. Hilfe zur Focus-Methode). In der Hilfe steht außderdem, man solle
stattdessem die Select-Methode verwenden. Die OnShown-Methode bietet sich dafür an:


Protected Overrides Sub OnShown(ByVal e As System.EventArgs)
MyBase.OnShown(e)
TextBox3.Select()
End Sub



Armin

Ähnliche fragen