Eingabefeld im WebBrowser (Applet) verliert Fokus bei Prozesswechsel

psykochris

Mitglied
Hallo Community,

nach lange aber leider erfolgloser Suche im Internet hoffe ich, ihr könnt mir weiterhelfen.

Folgendes Problem:
Ich rufe in einem WindowsForms-WebBrowser ein Applet auf (extern, nicht anpassbar).
In diesem gibt es verschiedene Eingabefelder. Beginne ich in einem zu schreiben und wechsle dann (z. B. via ALT+TAB) zuerst zu einem anderen Prozess und dann wieder zurück zu meiner Anwendung, liegt der Eingabefokus nicht mehr im zuvor gewählten Eingabefeld. Das muss er aber dringend tun, da hier das schnelle arbeiten mit der Tastatur notwendig ist und es somit nicht vom Benutzer verlangt werden kann, mit der Maus das Eingabefeld erneut auszuwählen.

Ich habe leider keine Idee wie ich das realisieren könnte.
Der Fokus liegt zwar auf dem WebBrowser-Control, nicht aber im Feld.

Ruft man die Seite in einem Browser (IE, FF, ...) auf, tritt dieses Problem nicht auf, hier passt der Fokus.
In meiner Anwendung hingegen betrifft es alle Seiten (nicht nur wie in meinem Fall das Applet).
Das Problem scheint also an .NET oder am Control / dem Handling zu liegen...

Ich wäre für jede Idee sehr dankbar!
 
Probier mal die Focus-Methode des Body-Elements aufzurufen, nachdem das WebBrowser-Control wieder den Focus bekommen hat:
C#:
MyWebBrowserControl.Document.Body.Focus();
 
Hi,

danke für deine Antwort.

Leider funktioniert das nicht, hab ich schon versucht.

Diverse andere Sachen wie z. B. folgendes auch:
C#:
webBrowser.Focus();
webBrowser.Document.Focus();
webBrowser.Document.ActiveElement.Focus();

// Das Applet ist im "OBJECT"-Tag. Der zweite beinhaltet das richtige.
webBrowser.Document.ActiveElement.GetElementsByTagName("OBJECT")[1].Focus();
 
Ich hab nun mal versucht testweise die WebKit-Engine (in Form von OpenWebKitSharp) zum rendern zu verwenden. Leider ebenfalls ohne Erfolg.
 
Zuletzt bearbeitet:
Hi,
1. Pushposts sind hier überhaupt nicht gerne gesehen und bringen auch einfach nichts!
2. Also mein erstes Ergebnis bei Google war folgendes:
http://stackoverflow.com/questions/...tml-textbox-or-button-in-a-webbroswer-control
(Suchbegriffe: .net webbrowser set focus)

Schau dir doch mal die Beispiel-Codes an, das müsste dich weiter bringen... ;)
Lg C4Dlooser
Ps: Ich weiß nicht ob diese externe Seite von dir ist oder nicht, aber den Seiten-Quelltext zu sehen sollte ja kein Problem darstellen;)

Edit:
...so, ich habe mich jetzt nochmal kurz an dein Problem gesetzt:
Code:
Dim El as String
'Namen des Elementes abfragen:
El = WebBrowser1.Document.ActiveElement.Name
'Element aktivieren:
WebBrowser1.Document.All(El).Focus()
...natürlich nicht in dieser Reihenfolge aufrufen :p
 
Zuletzt bearbeitet:
...Hmm, liegt es vielleicht daran dass das Webbrowsersteuerelement nicht mehr aktiv ist?

Ansonsten würde es wahrscheinlich helfen, wenn du uns den Link zur Seite oder dein Projekt zur Verfügung stellen würdest.

Lg C4Dlooser
 
Der Fokus liegt auf dem WebBrowser-Element, aber leider nicht im Eingabefeld.

Mein Projekt kann ich leider nicht zur Verfügung stellen, aber das Problem lässt sich mit einer Form und einem WebBrowser-Element in dem eine beliebige Seite mit Eingabefeldern aufgerufen wird nachvollziehen.
 
Also bei Google, beispielsweise, heißt die Textzeile [q] (steht ja auch in dem Link).
Wenn du dann im Ereignis MyBase.Activated (ich glaube dass es so heißt, hab leider grade keine IDE hier) folgendes aufrufst:
Code:
WebbrowserXYZ.Document.All("q").Focus()
...müsste das eigentlich klappen ;)

Lg C4Dlooser
Edit: Hast du denn mal ausprobiert ob es in einem neuen Projekt mit einer anderen Seite geht?
 
Zuletzt bearbeitet:
Hab ich versucht, klappt nicht.
Bin auch nicht der einzige hier, bei dem es nicht klappt.

Egal welche Seite oder welches Projekt, der Fokus geht verloren...
 

Neue Beiträge

Zurück