منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف تفتح نفس الفورم اكثر من مرة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
بسم الله الرحمن الرحيم
------------------------------------------------
اخواني عندي استفسار وكود ابحث عنه منذو شهور ارجوكم افيدوني اولا مكونات برنامجي هي :
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
ولكن طالما أنها أداة لماذا لم تعمل، ما المشكلة التي حصلت؟
الصفحات : 1 2