اولاً : التعريف :
WebBrowser هي اداة تعمل عمل اي متصفح و بالاخص مثل المتصفح الشهير Internet Explorer
فهي تساعدك في تصفح المواقع من ناحية و التحكم في اكوادها HTML وكل ما يرتبط بها من ادخال و استخراج بيانات من ناحية اخرى.
واليكم هذا بالتفصيل >>
ثانياً : اهم الخصائص:
Name : اسم الاداة و الاسم الافتراضي هو 1 WebBrowser .
AllowNavigation : السماح للتصفح داخل الاداة وبها اختيارين :-
-True : السماح بالتصفح وهو الافتراضي .
-False : عدم السماح بالتصفح .
Dock : مكان الاداة و الازاحة الخاصه بها اي بمعنى مكان وجود الاداة في البرنامج دائما ثابته في الاعلى ام الاسفل ام اليسار ام اليمين ام الوسط ام حره (None).
Location : مكان الخاص بالاداة داخل البرنامج تبعا لخطوط الطول و العرض الموجوده داخل البرنامج
وهذه الخاصية لا تعمل الا اذا كانت الاداة حره في الخاصية Dock وبها حقلين :-
-X : المكان بالنسبه لخطوط العرض .
-Y : المكان بالنسبه لخطوط الطول .
-Locked : عدم تحريك الاداة ابدا من مكانها و بداخلها اختيارين :-
--True : تفعيل عدم تحريك الاداة ابدا .
--False : السماح بتحريك الاداة من مكانها .
Margin : الابتعاد عن الحواف وبها 4 حقول :-
-All : مقاس الابتعاد عن الحواف من جميع الجهات .
-Left : مقاس الابتعاد عن الحواف من جهة اليسار .
-Top : مقاس الابتعاد عن الحواف من الاعلى .
-Right : مقاس الابتعاد عن الحواف من جهة اليمين .
-Bottom : مقاس الابتعاد عن الحواف من الاسفل .
MaximumSize : الحد الاقصى لحجم الاداة وبها حقلين :-
-Width : مقاس العرض .
-Height : مقاس الطول .
MinimumSize : الحد الادنى لحجم الاداة و بها حقلين :-
-Width : مقاس العرض .
-Height : مقاس الطول .
ScrollBarsEnabled : خاصة بتفعيل شريط التمرير و بها حلقين :-
-True : السماح بتفعيل الشريط التمرير .
-False : عدم السماح بتفعيل الشريط التمرير .
Size : الحجم الحالي للاداة وبها اختيارين :-
-Width : مقاس العرض .
-Height : مقاس الطول.
TabStop : ايقاف استخدام زر Tab للتنقل داخل الاداة وبها اختيارين :-
-True : ايقاف تفعيل استخدام زر Tab .
-False : تفعيل استخدام زر Tab .
Url : رابط الموقع و لكن يجب اضافة //:http في بداية الرابط .
Visible : حالة الاداة من ناحية الظهور وبها اختيارين :--
-True : ظهور الاداة امام المستخدم .
-False : عدم ظهور الاداة اما المستخدم .
ثالثاً : اهم الاحداث(التصريحات) :
CanGoBackChanged : هذا الحدث خاص بحالة قدرة الاداة لتنفيذ امر الرجوع للصفحة السابقة ام لا ويمكن ايضا ان نستخدمها في تفعيل زر الرجوع او ايقافه .
CanGoForwardChanged : هذا الحدث خاص بحالة قدرة الاداة لتنفيذ امر الانتقال للامام (اي الصفحة التالية التي تم زيارتها من قبل) ام لا ويمكن ايضا ان نستخدمها في تفعيل زر الانتقال للامام او ايقافه .
DocumentCompleted : هذا الحدث خاص بما يحدث عندما تقوم الاداة باتمام فتح صفحة ما (اي تنفيذ اوامر عند الانتهاء من تحميل اي صفحة) .
DocumentTitleChanged : هذا الحدث خاص بما يحدث عندما يتغير عنوان الصفحة .
ملاحظة : عنوان الصفحة لمن لا يعرفه هو النص الذي يظهر في اعلى اي متصفح باسم الموقع ويكون موجود هذا النص داخل اكواد HTML الخاصة بالموقع داخل عنصر title على سبيل المثال : هنا العنوان
Navigating : هذا الحدث خاص بما يحدث اثناء قيام الاداة بتحميل صفحة ما .
ProgressChanged : هذا الحدث خاص بمعرفة قيمة التغير(التحميل) الحادث اثناء تحميل اي صفحة .
StatusTextChanged : هذا الحدث خاص بمعرفة النص الخاص بحالة التصفح مثل تحميل صفحة ما او الانتهاء من تحميلها او عند الوقوف على رابط يظهر الرابط .
رابعاً : اهم الاكواد (هناك مثال مرفق به تطبيق شامل لكل هذه الخصائص و الاحداث و الاكواد)
اولاً : اكواد التصفح :-
فتح صفحة موقع
كود :
الكود:
WebBrowser1.Navigate("رابط الصفحة كامل")
فتح صفحة فارغة
كود :
الكود:
WebBrowser1.Navigate("about:blank")
الرجوع للصفحة السابقة
كود :
الكود:
WebBrowser1.GoBack()
الانتقال للصفحة التالية
كود :
الكود:
WebBrowser1.GoForward()
اعادة تحميل الصفحة
كود :
الكود:
WebBrowser1.Refresh()
ايقاف تحميل الصفحة
كود :
الكود:
WebBrowser1.Stop()
ثانياً : اكواد النوافذ الملحقة بالاداة :-
حفظ الصفحة
كود :
الكود:
Form1.WebBrowser1.ShowSaveAsDialog()
معاينة الصفحة قبل الطباعة
كود :
الكود:
Form1.WebBrowser1.ShowPrintPreviewDialog()
طباعة الصفحة
كود :
الكود:
Form1.WebBrowser1.ShowPrintDialog()
خصائص الصفحة
كود :
الكود:
Form1.WebBrowser1.ShowPropertiesDialog()
تنسيق الصفحة
كود :
الكود:
Form1.WebBrowser1.ShowPageSetupDialog()
رسالة تنبيه
كود :
الكود:
Form1.WebBrowser1.Document.Window.Alert("نص الرسالة")
فتح نافذة جديدة
كود :
الكود:
Dim url As String = WebBrowser1.Document.Url.ToString
Dim frm As New Form1
frm.Show()
frm.WebBrowser1.Navigate(url)
رقم اصدار الاداة
كود :
الكود:
MsgBox(WebBrowser1.Version.ToString)
خامساً : التعاملات النصية :-
قص النص المحدد
كود :
الكود:
Form1.WebBrowser1.Document.ExecCommand("cut", True, DBNull.Value)
نسخ النص المحدد
كود :
الكود:
Form1.WebBrowser1.Document.ExecCommand("copy", True, DBNull.Value)
لصق النص في المكان المُفعل
كود :
الكود:
Form1.WebBrowser1.Document.ExecCommand("paste", True, DBNull.Value)
البحث داخل نصوص الاداة
كود :
الكود:
Dim data As DataObject = Clipboard.GetDataObject 'الاحتفاظ بما تم نسخة
Form1.WebBrowser1.Document.ExecCommand("Copy", False, Nothing)
Form1.WebBrowser1.Focus()
SendKeys.SendWait("^f")
Clipboard.SetDataObject(data) 'ارجاع ما تم نسخة قبل عملية البحث
سادساً : التعامل مع محتوى الصفحة :-
اولاً : التعاملات العامة :-
استخراج نص الصفحة
كود :
الكود:
Form2.Text = "WebBrowser Get TEXT"
Form2.RichTextBox1.Text = WebBrowser1.Document.Body.InnerText
Form2.Show()
استخراج اكواد الصفحة
كود :
الكود:
Form2.Text = "WebBrowser Get HTML"
Form2.RichTextBox1.Text = WebBrowser1.Document.GetElementsByTagName("HTML").Item(0).OuterHtml
Form2.Show()
تحويل الصفحة الى نص
كود :
الكود:
Form1.WebBrowser1.Document.Body.InnerText = RichTextBox1.Text
تحويل الصفحة الى اكواد او نص
كود :
الكود:
Form1.WebBrowser1.Document.Body.InnerHtml = RichTextBox1.Text
ثانياً : التعاملات الخاصة بعناصر الصفحة :-
اولاً : GetElementById
الاستخراج
كود :
الكود:
MsgBox(Form1.WebBrowser1.Document.GetElementById(رقم الاي دي).GetAttribute(اسم المطلوب محتواه))
الارسال
كود :
الكود:
Form1.WebBrowser1.Document.GetElementById(رقم الاي دي).SetAttribute(اسم المرسل اليه,النص المرسل)
الضغط
كود :
الكود:
Form1.WebBrowser1.Document.GetElementById(رقم الاي دي).InvokeMember("click")
ثانياً : GetElementsByTagName
الاستخراج
كود :
الكود:
If (Form1.WebBrowser1.Document IsNot Nothing) Then
Dim Elems As HtmlElementCollection
Dim WebOC As Windows.Forms.WebBrowser = Form1.WebBrowser1
Elems = WebOC.Document.GetElementsByTagName(Tag اسم)
For Each elem As HtmlElement In Elems
Dim NameStr As String = elem.GetAttribute(اسم عنصر الاثبات)
If ((NameStr IsNot Nothing) And (NameStr.Length <> 0)) Then
If NameStr.ToLower().Equals(محتوى عنصر الاثبات) Then
Dim ContentStr As String = elem.GetAttribute(اسم القيمة المطلوبة)
MessageBox.Show(ContentStr)
End If
End If
Next
End If
الارسال
كود :
الكود:
If (Form1.WebBrowser1.Document IsNot Nothing) Then
Dim Elems As HtmlElementCollection
Dim WebOC As Windows.Forms.WebBrowser = Form1.WebBrowser1
Elems = WebOC.Document.GetElementsByTagName(Tag اسم)
For Each elem As HtmlElement In Elems
Dim NameStr As String = elem.GetAttribute(اسم عنصر الاثبات)
If ((NameStr IsNot Nothing) And (NameStr.Length <> 0)) Then
If NameStr.ToLower().Equals(محتوى عنصر الاثبات) Then
elem.SetAttribute(اسم المرسل اليه, النص المرسل)
End If
End If
Next
End If
الضغط
كود :
الكود:
If (Form1.WebBrowser1.Document IsNot Nothing) Then
Dim Elems As HtmlElementCollection
Dim WebOC As Windows.Forms.WebBrowser = Form1.WebBrowser1
Elems = WebOC.Document.GetElementsByTagName(Tag اسم)
For Each elem As HtmlElement In Elems
Dim NameStr As String = elem.GetAttribute(اسم عنصر الاثبات)
If ((NameStr IsNot Nothing) And (NameStr.Length <> 0)) Then
If NameStr.ToLower().Equals(محتوى عنصر الاثبات) Then
elem.InvokeMember("click")
End If
End If
Next
End If
ثالثا : All
الاستخراج
كود :
الكود:
MsgBox(Form1.WebBrowser1.Document.All().Item(CInt(الرقم التسلسلي للعنصر او الاي دي)).InnerHtml)
الارسال
كود :
الكود:
Form1.WebBrowser1.Document.All().Item(CInt(الرقم التسلسلي للعنصر او الاي دي)).InnerHtml = "النص"
الضغط
كود :
الكود:
Form1.WebBrowser1.Document.All().Item(CInt(الرقم التسلسلي للعنصر او الاي دي)).InvokeMember("click")
سابعاً : تطبيقات على الاحداث (التصريحات)
CanGoBackChanged
كود :
الكود:
If WebBrowser1.CanGoBack Then 'ان كانت الاداة قادرة على الرجوع للخلف
Button1.Enabled = True ' تفعيل زر الرجوع للخلف
Else 'وان كانت غير قادرة
Button1.Enabled = False 'عدم تفعيل زر الرجوع للخلف
End If
CanGoForwardChanged
كود :
الكود:
If WebBrowser1.CanGoForward Then 'ان كانت الاداة قادرة على الانتقال الى الصفحة التالية
Button2.Enabled = True ' تفعيل زر الانتقال
Else 'وان كانت غير قادرة
Button2.Enabled = False 'عدم تفعيل زر الانتقال
End If
DocumentCompleted
كود :
الكود:
TextBox1.Text = WebBrowser1.Url.ToString 'اظهار رابط الصفحة
Button3.Enabled = True 'تفعيل زر اعادة التحميل
Button4.Enabled = False 'الغاء تفعيل زر ايقاف تحميل الصفحة
DocumentTitleChanged
كود :
الكود:
title.Text = "TiTle : " & WebBrowser1.DocumentTitle ' عنوان الصفحة
Navigating
كود :
الكود:
Button3.Enabled = False 'الغاء تفعيل زر اعادة تحميل الصفحة
Button4.Enabled = True 'تفعيل زر ايقاف تحميل الصفحة
ProgressChanged
كود :
الكود:
ToolStripProgressBar1.Maximum = e.MaximumProgress ' تساوي اعلى قيمة انتهاء تحميل الصفحة ToolStripProgressBar1 جعل اعلى قيمة لاداة
ToolStripProgressBar1.Value = e.CurrentProgress ' تساوي قيمة التحميل الحالية ToolStripProgressBar1 جعل القيمة الحالية لاداة
StatusTextChanged
كود :
الكود:
ToolStripLabel1.Text = WebBrowser1.StatusText ' يساوي نص الحالة الخاصة بالاداة ToolStripLabel1 جعل نص
تم بحمد الله
المثال موجود بالمرفقات به تطبيق لكل هذه الاكواد
وان كان هناك اي تعقيب او مناقشة انا متواجد ان شاء الله
منقووول