Contrôle WebBrowser+Focus

Signaler
Messages postés
7
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
21 octobre 2008
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour,

J'utilise un contrôle WebBrowser pour afficher un PDF. Après le chargement du PDF par la méthode Navigate, le contrôle WebBrowser conserve le focus.
Alors que me.activecontrol me retourne un autre contrôle (par exemple une DataGridView). WebBrowser garde le focus pcq quand on fait Flèche haute/Flèche basse, c'est le pdf qui scrolle.
Pour redonner le focus au contrôle ayant chargé le pdf, il faut faire Alt+Tab deux fois.
La méthode .focus ne marche pas.

Merci pour votre aide.

8 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
salut,
tu testes le focus après le navigate, ou à la fin...., au document_complete...
c'est bien dans ce 2e évènement que tu dois "jouer"

++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
7
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
21 octobre 2008

Salut PCPT

Je teste le focus après l'événement DocumentCompleted. Je redonne le focus à mon premier contrôle. Mais il ne l'a réellement que si je fais Alt+Tab 2 fois. Sinon si je fais flèche basse ou flèche haute, c'est le webbrowser qui réagit.

J'ai essayé aussi de mettre le webbrowser dans un panel que je rend disabled avant le navigate, et que je remet enabled dans le DocumentCompleted mais ça ne marche pas. J'ai l'impression que c'est après cet événement, que le WebBrowser reprend le focus. Si je déclenche un timer qui redonne le focus à mon contrôle 1 seconde après la fin du DocumentCompleted, ça marche.

Merci
Messages postés
7
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
21 octobre 2008

Mais ça ne me va pas parce que peut-être que l'utilisateur a cliqué ailleurs entre temps.
Quelqu'un a une piste ?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
qu'est ce que çà donne avec un simple "application.doevents" à la fin du _complete, puis seulement de mettre le focus sur ce que tu voulais... ?
Messages postés
7
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
21 octobre 2008

Non c'est pareil.


Je pense que c'est lié au PDF : le WebBrowser utiliser le contrôle ActiveX d'adobe pour afficher le pdf. Et c'est après le Completed que le webbrowser reprend la main. Est-ce qu'on ne peut pas intercepter les événements sur cet activex ?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
j'ai un doute....

en plus en VB.NET là aucune idée
mais ton énoncé est plus clair, ce n'est pas directement le webbrowser mais au final directement le fichier lu

et en désactivant (enabled) uniquement le webbrowser çà donne quoi?
ou peut-être possible de jouer sur l'évènement Getfocus (ou assimilé) du webbrowser?

c'est plus de ce côté là que je chercherais...

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
7
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
21 octobre 2008

La propriété Enabled n'existe pas sur le contrôle WebBrower. Mais j'ai essayé de le mettre dans un Panel que je rend disabled avant le navigate (ou après) puis enabled au Completed. Ca ne marche pas parce que c'est après tout ça que le WebBrowser prend le focus.
Ou plus exactement c'est l'activex.

Sais-tu ce qu'on peut faire avec WndProc ? on ne peut pas voir le message qui donne le focus au webbrowser.

Merci
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
37
comme dit je ne fais pas de DotNet, mais si tu sais utiliser wndproc, le message à intercepter sera très probablement WM_ACTIVATE

tu peux d'ailleurs trouver un exemple d'utilisation de ce type de subclassing dans les sources récentes de Bouv, de mémoire....

++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp <