منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[كود] كيف تفتح نفس الفورم اكثر من مرة - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [كود] كيف تفتح نفس الفورم اكثر من مرة (/showthread.php?tid=17507)

الصفحات: 1 2


كيف تفتح نفس الفورم اكثر من مرة - عبدالرحمن المكاوي - 30-09-16

بسم الله الرحمن الرحيم
------------------------------------------------
اخواني عندي استفسار وكود ابحث عنه منذو شهور ارجوكم افيدوني اولا مكونات برنامجي هي :
1- ويب براوزر
2-قائمة بها اوامر
عند الضغط علي احدي هذه الاوامر يقوم بفتح صفحة ويب داخل اداة ويب براوزر
المطلوب :
اريد عند الضغط علي امر معين في "القائمة" ان البرنامج يصنع فورم جديد يكون به اداة ويب براوزر ويفتح نفس الرابط الذي كان مفتوح عندما ضغطت علي الامر ويكون اسم الفورم هو نفس اسم الامر الذي ضغط عليه

ارجوكم افيدوني


RE: كيف تفتح نفس الفورم اكثر من مرة - silverlight - 01-10-16

فيه أكثر من أسلوب لتنفيذ ما تريد و أحدها هو أن تستخدم 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() 



RE: كيف تفتح نفس الفورم اكثر من مرة - ممدوح - 01-10-16

جرب هذا الكود
كود :
#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



RE: كيف تفتح نفس الفورم اكثر من مرة - عبدالرحمن المكاوي - 01-10-16

(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
شكرا شغال تمام لكن مكان اسم الفورم فاضي ليه


RE: كيف تفتح نفس الفورم اكثر من مرة - samah93 - 01-10-16

كيف اقوم بارسال بيانات في جدوال واحد وارسالها الى web server انا محتاجة للمساعدة ضروري


RE: كيف تفتح نفس الفورم اكثر من مرة - ممدوح - 01-10-16

ماذا تقصد باسم الفورم؟


RE: كيف تفتح نفس الفورم اكثر من مرة - عبدالرحمن المكاوي - 01-10-16

اسم الفورم الذي سينشئ جديد اريد ان اضع له اسم ثابت


RE: كيف تفتح نفس الفورم اكثر من مرة - ممدوح - 01-10-16

برضو ما فهمت قصدك بالاسم، هل تقصد عنوان الفورم، إذا كذلك هذا التعديل
كود :
#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



RE: كيف تفتح نفس الفورم اكثر من مرة - عبدالرحمن المكاوي - 02-10-16

طيب اخي الكود لم يتماشي مع اداة GeckoWebBrowser ممكن تعدله


RE: كيف تفتح نفس الفورم اكثر من مرة - ممدوح - 02-10-16

لم أتعامل مع GeckoWebBrowser
ولكن طالما أنها أداة لماذا لم تعمل، ما المشكلة التي حصلت؟