Magazine Internet

[WebBrowser] Un click Thread-Safe

Publié le 01 septembre 2009 par Jeremy.jeanson

Quand on manipule des objets HtmlElement obtenus via un WebBrowser, le code suivant est bien pratique pour déclencher l’évènement onclick dans la page web :

Vb

monHtmlElement.RaiseEvent("onclick")

C#

monHtmlElement.RaiseEvent("onclick");

Malheureusement ce code n’est pas Thread-Safe et déclenchera un erreur quand il serra lancé via un thread autre que celui qui a servi à instancier le WebBrowser.

Dans ces moment là on se dit qu’il n’y a rien de grave là dedans, on a un control winform, et donc ont peut utiliser sa méthode Invoke quand elle est requise (exemple : voir cet article)…

Oui, oui, c’est une idée, mais cela ne marche pas. Une erreur se produira quand même.

Pour s’en sortir : il faut utiliser la méthode InvokeMember du HtmlElement et surtout lui passer un argument. Sans argument une erreur peut se produire. Voici un exemple de code:

Vb

Dim param As New Object()
monHtmlElement.InvokeMember("onclick", param)

C#

Object param = new Object();
monHtmlElement.InvokeMember("onclick", param);

Retour à La Une de Logo Paperblog

LES COMMENTAIRES (5)

Par coloniedevacances
posté le 22 janvier à 06:37
Signaler un abus

Salut, J'arrive tous juste sur ce forum qui m'a l'air interressant. habitué des forum et gros contributeur, je suis interressé par votre concept. A bientot sur le forum

Par coloniedevacances
posté le 22 janvier à 01:57
Signaler un abus

Salut, J'arrive tous juste sur ce forum qui m'a l'air interressant. habitué des forum et gros contributeur, je suis interressé par votre concept. A bientot sur le forum

Par pugeot
posté le 12 janvier à 15:26
Signaler un abus

Bonjour, je viens de m'inscrire sur ce forum, je suis donc nouveau et cherche a trouver et partager des infos sur le sujet. Je commence a eplucher le forum et je pense y poser mes valises un petit moment. à bientot

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte