Auteur: tuenhai.com MSN: King # tuenhai.com
Énoncé du droit d'auteur: vous pouvez le réimprimer à volonté. Lors de la réimpression, assurez-vous d'indiquer la source d'origine de l'article, les informations de l'auteur et cette déclaration sous la forme d'un lien hypertexte.
http://www.tuenhai.com/
Outils de développement: Microsoft Visual Studio .NET 2003
Système d'exploitation: Windows XP
Texte d'origine: http://www.devx.com/vb2themax/tip/18798
Comme les autres contrôles, nous pouvons utiliser le contrôle WebBrowser pour créer des applications Windows Form. Sélectionnez le groupe de contrôle de formulaire Windows dans la boîte à outils, cliquez sur "Microsoft Web Browser" et utilisez l'outil AximP.exe en arrière-plan pour créer un contrôle ActiveX avec le nom "Axwebrowser". Dans VB.NET, les composants COM ne peuvent pas être utilisés directement. com sont tous des codes non gérés. Si vous utilisez ces composants dans VB.NET, vous devez terminer la conversion du code non géré en code géré.
Généralement, vous pouvez utiliser le contrôle WebBrowser d'origine, tel que la méthode d'appel, spécifier les propriétés, les événements de capture, etc.
Certaines choses ne sont pas si simples. Nous voulons capturer des événements de page, comme lorsque l'utilisateur clique sur un élément de page (comme l'arrière-plan), il déclenche l'événement onClick de l'élément de page. Si l'événement n'est pas capturé, le niveau DHTML doit être mis à niveau jusqu'au plus haut niveau de l'objet de document. De cette façon, nous pouvons capturer n'importe quel événement. Dans VB6, nous pouvons simplement spécifier webbrowser.Document à mshtml.htmldocument avec le mot clé WithEvents.
Dans VB.NET, cette méthode simple ne fonctionne plus. Étant donné que le contrôle ActiveX crée deux interfaces, le même nom de méthode est utilisé dans les deux interfaces, ce qui entraîne une erreur d'exécution. Ainsi, vous devez spécifier l'interface utilisée par l'objet de document et créer une poignée de gestion d'événements (hehe, tuenhai est bien traduit).
Voici l'exemple de code:
'Important: ce code suppose que vous avez ajouté une référence au
'bibliothèque de type bibliothèque d'objets Microsoft HTML
SUB FORME privé1_load (ByVal Sender As System.Object, _
BYVAL E As System.Eventargs) gère MyBase.load
axwebrowser1.navigate ("http: //localhost/default.asp")
Sub-Sub
Private Sub Axwebrowser1_navigateComplete2 (ByVal Sender en tant qu'objet, _
byVal e as axshdocvw.dwebbrowerevents2_navigatecompletele2event)
axwebrowser1.NavigateComplete2
'doit attendre que cet événement prenne une référence valide au document
' propriété
Dim Doc comme mshtml.htmlDocument = DirectCast (axwebBrowser1.Document, _
mshtml.htmldocument)
'Cast à l'interface qui définit l'événement qui vous intéresse
DIM DOCUMENTS comme mshtml.htmlDocumentEvents2_Event = DirectCast (Doc, _
mshtml.htmldocumentevents2_event)
'Définir un gestionnaire de l'événement onclick
AddHandler Documents.onclick, Adresse ONClickProc
Sub-Sub
`` Notez que la signature de cet événement est différente de l'habitude, car
'devrait renvoyer un booléen - en cas de faux l'effet par défaut associé
'avec l'événement (par exemple, sauter à une autre page si le clic est allumé
«Un hyperlien) est annulé.
Fonction privée OnClickProc (BYVAL OBJ comme mshtml.ihtmlleventobj) comme booléen
'Un objet sur la page a été cliqué - vous pouvez en savoir plus sur
'Type et position de cet objet en interrogeant les propriétés de l'OBJ
'...
fonction finale
Note du traducteur:
Il s'agit de la première traduction de Tuenhai.
Mon expérience personnelle a beaucoup profité de voyager dans les sites Web de conception de programmes à l'étranger ces derniers jours. J'ai aussi pensé à l'apprentissage de l'apprentissage de la calligraphie. La voie à Shareware réside dans le domaine international. N'est-ce pas la même chose lors de l'apprentissage de la conception des logiciels? Comment les ressources d'apprentissage internationales se comparent-elles aux ressources d'apprentissage domestiques?
L'anglais n'est en aucun cas un obstacle. Tuenhai ne croit pas que son anglais sera meilleur que vous. Les bases de l'école secondaire, ainsi que Kingsoft Powerwords, cela suffit.