أولا : الكلاس أعلاه لو أجدت استحدامه سوف يساهم في حل مشكلتك تماما
ثانيا : دعني أوضح لك كيف تستفيد من الكلاس اعلاه
المرحلة الثانية
هناك إتجاهان لتنفذ المرحلة الثانية
الإتجاه الأول هو أن تبني مصفوفة لهذا الكلاس و بما ان الوقت ضيق فلن نستخدم هذا الاسلوب و ربما لاحقا ان كان لدي وقت اكتب لك المصفوفة
الإتجاه الثاني هو ان تستخدم أي من المصفوفات الموجودة في الدوت نت ثم نملاها بالكلاس الخاص وبما انك سوف تستخدم المصفوفة لاحقا لكي تقوم بنقل البيانات الموجودة بها من الفورم الموجود به المتصفح و يمثله هنا الفورم الأول ثم تقوم بإظهار البيانات الموجودة في المصفوفة في الفورم الثاني لذلك من لأفضل وعند تعريف المصفوفة يتم تعريفها علي انها من النوع Shared
ثم وعلي ما اعتقد وفي داخل الحدث WebborwserNaviagted تستطيع استراد اسم الرابط من الخاصية Webbrowser1.Url.ToString
شكل الكود في الفورم الأول سيكون تقريبا هكذا و انا هنا اضفت بعض الكونترول من اجل الاختبار لا غير
كود :
Public Class Form1
Friend Shared histories As List(Of BrowserHistory) = New List(Of BrowserHistory)()
Private Sub Navigate(ByVal address As String)
If String.IsNullOrEmpty(address) Then Return
If address.Equals("about:blank") Then Return
If Not address.StartsWith("http://") And
Not address.StartsWith("https://") Then
address = "http://" & address
End If
Try
WebBrowser1.Navigate(New Uri(address))
Catch ex As System.UriFormatException
Return
End Try
End Sub
Private Sub WebBrowser1_Navigated(sender As Object, e As WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
Dim urlString As String = WebBrowser1.Url.ToString()
Dim enteringTime As DateTime = DateTime.Now
Dim history As New BrowserHistory(urlString, enteringTime)
histories.Add(history)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Form2.Show()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Navigate("https://msdn.microsoft.com/")
End Sub
End Class
شكل الكود في الفورم الثاني سيكون تقريبا مشابه لهذا الكود
كود :
Public Class Form2
Private Shared historiesCopyList As List(Of BrowserHistory)
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
historiesCopyList = New List(Of BrowserHistory)(Form1.histories.ToList)
For Each history In historiesCopyList
Me.ListBox1.Items.Add(history.ToString)
Next
End Sub
End Class
للأسف و بسبب بطء النت عندي لم اختبر الكود تماما لكن و بشكل اتمني ان الفكرة تكون وضحت لك و ان شاء الله تؤتي ثمارها معك