بسم الله الرحمن الرحيم
------------------------------------------------
اخواني عندي استفسار وكود ابحث عنه منذو شهور ارجوكم افيدوني اولا مكونات برنامجي هي :
1- ويب براوزر
2-قائمة بها اوامر
عند الضغط علي احدي هذه الاوامر يقوم بفتح صفحة ويب داخل اداة ويب براوزر
المطلوب :
اريد عند الضغط علي امر معين في "القائمة" ان البرنامج يصنع فورم جديد يكون به اداة ويب براوزر ويفتح نفس الرابط الذي كان مفتوح عندما ضغطت علي الامر ويكون اسم الفورم هو نفس اسم الامر الذي ضغط عليه
ارجوكم افيدوني
فيه أكثر من أسلوب لتنفيذ ما تريد و أحدها هو أن تستخدم GCHandle كالأتي
PHP كود :
Private Function CreateForm() As Form
Dim gc As GCHandle
gc = GCHandle.Alloc(New Form2)
Return gc.Target
gc.Free()
End Function
الكود التالي يوضح كيف تستخدم الكود
PHP كود :
Dim f As Form2 = CreateForm()
f.Show()
جرب هذا الكود
كود :
#Region " CreateNewFormWithWebBroswer(url As Uri) "
Private Sub CreateNewFormWithWebBroswer(url As Uri)
Dim frm As New Form With {.RightToLeft = RightToLeft.Yes, .RightToLeftLayout = True}
AddHandler frm.FormClosing, AddressOf frmFormClosing
Dim wb As New WebBrowser With {.Dock = DockStyle.Fill, .ScriptErrorsSuppressed = True}
wb.Navigate(url)
AddHandler wb.DocumentCompleted, AddressOf wb_DocComp
frm.Controls.Add(wb)
frm.Show()
End Sub
Private Sub wb_DocComp(sender As Object, e As WebBrowserDocumentCompletedEventArgs)
sender.Parent.Text = sender.Document.Title
End Sub
Private Sub frmFormClosing(sender As Object, e As FormClosingEventArgs)
sender.Dispose()
End Sub
#End Region
طريقة استخدامه
كود :
Private Sub Button99_Click(sender As Object, e As EventArgs) Handles Button99.Click
CreateNewFormWithWebBroswer(Me.WebBrowser1.Url)
End Sub
(01-10-16, 01:28 AM)ممدوح كتب : [ -> ]جرب هذا الكود
كود :
#Region " CreateNewFormWithWebBroswer(url As Uri) "
Private Sub CreateNewFormWithWebBroswer(url As Uri)
Dim frm As New Form With {.RightToLeft = RightToLeft.Yes, .RightToLeftLayout = True}
AddHandler frm.FormClosing, AddressOf frmFormClosing
Dim wb As New WebBrowser With {.Dock = DockStyle.Fill, .ScriptErrorsSuppressed = True}
wb.Navigate(url)
AddHandler wb.DocumentCompleted, AddressOf wb_DocComp
frm.Controls.Add(wb)
frm.Show()
End Sub
Private Sub wb_DocComp(sender As Object, e As WebBrowserDocumentCompletedEventArgs)
sender.Parent.Text = sender.Document.Title
End Sub
Private Sub frmFormClosing(sender As Object, e As FormClosingEventArgs)
sender.Dispose()
End Sub
#End Region
طريقة استخدامه
كود :
Private Sub Button99_Click(sender As Object, e As EventArgs) Handles Button99.Click
CreateNewFormWithWebBroswer(Me.WebBrowser1.Url)
End Sub
شكرا شغال تمام لكن مكان اسم الفورم فاضي ليه
كيف اقوم بارسال بيانات في جدوال واحد وارسالها الى web server انا محتاجة للمساعدة ضروري
اسم الفورم الذي سينشئ جديد اريد ان اضع له اسم ثابت
برضو ما فهمت قصدك بالاسم، هل تقصد عنوان الفورم، إذا كذلك هذا التعديل
كود :
#Region " CreateNewFormWithWebBroswer(url As Uri) "
Private Sub CreateNewFormWithWebBroswer(url As Uri)
Dim frm As New Form With {.RightToLeft = RightToLeft.Yes, .RightToLeftLayout = True, .Text = "عنوان الفورم"}
AddHandler frm.FormClosing, AddressOf frmFormClosing
Dim wb As New WebBrowser With {.Dock = DockStyle.Fill, .ScriptErrorsSuppressed = True}
wb.Navigate(url)
AddHandler wb.DocumentCompleted, AddressOf wb_DocComp
frm.Controls.Add(wb)
frm.Show()
End Sub
Private Sub frmFormClosing(sender As Object, e As FormClosingEventArgs)
sender.Dispose()
End Sub
#End Region
طيب اخي الكود لم يتماشي مع اداة GeckoWebBrowser ممكن تعدله
لم أتعامل مع GeckoWebBrowser
ولكن طالما أنها أداة لماذا لم تعمل، ما المشكلة التي حصلت؟