في هذه المهمة
الملخص
تطبيقات Visual Basic.NET التي تستضيف عنصر تحكم WebBrowser معالجة الحدث NewWindow2 لجذب استدعاء window.open الذي تم إنشاؤه بواسطة برنامج نصي. ومع ذلك، لم يكن واضحة مباشرة كيفية التطبيق الخاص بك يمكنك الحصول على قيم العرض والارتفاع التي يتم تمريرها إلى الوسيطة ميزاتwindow.open حيث أن المضيف WebBrowser حجم الإطار بشكل صحيح. توضح هذه المقالة كيفية الحصول على العرض الجديد وارتفاع عنصر التحكم WebBrowser وكيفية تغيير حجم النموذج وفقا لذلك.
المتطلبات
توضح القائمة التالية الأجهزة الموصى بها والبرامج والبنية الأساسية للشبكة وحزم الخدمات التي تحتاجها:
-
Microsoft Visual Studio.NET
-
Microsoft Internet Explorer 5.5 Service Pack 2 أو الأحدث
إنشاء نموذج
يصف هذا القسم كيفية استضافة عنصر التحكم WebBrowser في تطبيق Visual Basic.NET كيفية معالجة الحدث NewWindow2 عنصر التحكم WebBrowser ثم كيفية معالجة الأحداث ويندووسيثيتويندووسيتويدث تغيير حجم التطبيق الخاص بك.
-
إنشاء تطبيق Windows جديد في Visual Basic كما يلي:
-
بتشغيل Visual Studio.NET.
-
من القائمة ملف، أشر إلى جديد ثم انقر فوق المشروع.
-
ضمن أنواع المشروع، انقر فوق مشاريع Visual Basic. ضمن قوالب، انقر فوق تطبيق Windows.
-
-
في مربع الأدوات، انقر فوق عام، انقر بالزر الأيمن في مربع الأدوات وثم انقر فوق تخصيص مربع الأدوات.
-
ضمن علامة التبويب مكونات COM ، حدد خانة الاختيار مستعرض ويب Microsoft ومن ثم انقر فوق موافق.
-
في مربع الأدوات، انقر نقراً مزدوجاً فوق في إطار "المستكشف".
-
إضافة عنصر تحكم مربع نص وعنصر تحكم زر إلى النموذج الخاص بك.
-
انقر نقراً مزدوجاً فوق الزر لعرض تنفيذ الحدث onClick للزر في إطار التعليمات البرمجية ثم قم بإضافة التعليمات البرمجية التالية:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate(TextBox1.Text) End Sub
هذا الرمز يسمح لك إمكانية استعراض URL الذي قمت بتحديده في مربع النص.
-
أضف التعليمات البرمجية التالية لكتابة دالة معالج NewWindow2:
Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) _ Handles AxWebBrowser1.NewWindow2 Dim frmWB As Form1 frmWB = New Form1() frmWB.AxWebBrowser1.RegisterAsBrowser = True e.ppDisp = frmWB.AxWebBrowser1.Application frmWB.Visible = True End Sub
-
أضف التعليمات البرمجية التالية لكتابة دالة معالج ويندووسيثيت:
Private Sub AxWebBrowser1_WindowSetHeight(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetHeightEvent) _ Handles AxWebBrowser1.WindowSetHeight Dim heightDiff As Integer heightDiff = Me.Height - Me.AxWebBrowser1.Height Me.Height = heightDiff + e.height End Sub
-
أضف التعليمات البرمجية التالية لكتابة دالة معالج ويندووسيتويدث:
Private Sub AxWebBrowser1_WindowSetWidth(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetWidthEvent) _ Handles AxWebBrowser1.WindowSetWidth Dim widthDiff As Integer widthDiff = Me.Width - Me.AxWebBrowser1.Width Me.Width = widthDiff + e.width End Sub
إكمال نموذج التعليمات البرمجية
Public Class Form1 Inherits System.Windows.Forms.Form#Region " Windows Form Designer generated code " 'Omitted#End Region Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click AxWebBrowser1.Navigate(TextBox1.Text) End Sub Private Sub AxWebBrowser1_NewWindow2(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_NewWindow2Event) _ Handles AxWebBrowser1.NewWindow2 'MessageBox.Show(AxWebBrowser1.Height & ":" & AxWebBrowser1.Width) 'MessageBox.Show(doc.body.innerHTML) Dim frmWB As Form1 frmWB = New Form1() frmWB.AxWebBrowser1.RegisterAsBrowser = True 'frmWB.AxWebBrowser1.Navigate2("about:blank") e.ppDisp = frmWB.AxWebBrowser1.Application frmWB.Visible = True 'MessageBox.Show(frmWB.AxWebBrowser1.Height & ":" & frmWB.AxWebBrowser1.Width) End Sub Private Sub AxWebBrowser1_WindowSetHeight(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetHeightEvent) _ Handles AxWebBrowser1.WindowSetHeight 'MessageBox.Show("In SetHeight" & Me.Height & ":" & e.height) Dim heightDiff As Integer heightDiff = Me.Height - Me.AxWebBrowser1.Height Me.Height = heightDiff + e.height End Sub Private Sub AxWebBrowser1_WindowSetWidth(ByVal sender As Object, _ ByVal e As AxSHDocVw.DWebBrowserEvents2_WindowSetWidthEvent) _ Handles AxWebBrowser1.WindowSetWidth 'MessageBox.Show("In SetWidth" & Me.Width & ":" & e.width) Dim widthDiff As Integer widthDiff = Me.Width - Me.AxWebBrowser1.Width Me.Width = widthDiff + e.width End SubEnd Class
تحقق من أنه يعمل
-
إنشاء التطبيق.
-
افتح المفكرة. إنشاء ملف جديد يسمى Test.htm ثم قم بإضافة التعليمات البرمجية التالية:
<HTML><HEAD><META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"><TITLE></TITLE><script>function openWin(){var win;win = window.open("http://www.microsoft.com","blah","width=600, height=600");}</script></HEAD><BODY><button onClick=openWin()>Open Window</button></BODY></HTML>
-
حفظ الملف اختبار.htm على خادم الويب الخاص بك.
-
قم بتشغيل التطبيق.
-
استعرض للوصول إلى الصفحة Test.htm ومن ثم انقر فوق الزر. لاحظ أن يفتح موقع ويب شركة Microsoft في نسخة جديدة من التطبيق. يتم تغيير حجم النموذج وفقا للميزات التي قمت بتمريرها مع استدعاء window.open.
المراجع
لمزيد من المعلومات، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة معارف Microsoft":
311284 كيفية: معالجة أحداث المستند في تطبيق Visual Basic.NET
259963 HOWTO: الحصول على عرض وارتفاع توفيره للداخل Window.open المضيف WebBrowser Visual c + +لمزيد من المعلومات حول عنصر التحكم WebBrowser، بالإضافة إلى الأساليب، الخصائص، والأحداث التي يعرضها، أرجع إلى موقع Microsoft التالي على الويب:
عنصر التحكم WebBrowser: مرجع ل مطوري Visual الأساسيةhttp://msdn2.microsoft.com/en-us/library/Aa752043.aspxلمزيد من المعلومات حول تطوير الحلول المستندة إلى ويب ل Microsoft Internet Explorer، قم بزيارة مواقع Microsoft التالية على الويب:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep