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

نسخة كاملة : كيف يتم أستدعاء UserContrlols
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السـلام عليكم روحمة الله وبركاته 

عندي فورم رئيسية أستقبل فيها اليوزر كنترول داخلها 
ولكن واجهتني مشكله وهي عند أستدعاء UserControl1  تظهر بلا مشكله

 ولكن عند أستدعاء UserControl2 من داخل UserControl1  لعرضها في الفورز الرئيسي يرفض 
مرفق لكم مثال أتمنى اللي عنده حل لا يبخل علينا 

 [attachment=25122]
اذا انا فهمت المطلوب
بالفورم الاول زر امر وبانل
PHP كود :
 Dim u1 As New UserControl1
        Me
.Panel1.Controls.Clear()
 
       Me.Panel1.Controls.Add(u1

باليوزر كونترول1 زر امر

PHP كود :
    Dim u1 As New UserControl2
        Form1
.Panel1.Controls.Clear()
 
       Form1.Panel1.Controls.Add(u1
وعليك السلام ورحمة الله وبركاته

اخي الكريم بالاضافة الى ماذكره الاخ سعود مشكورا توجد طرق اخرى


منها ان تقوم بالتصريح عن UserControl1  و UserControl2  كـ Public في قسم التصاريح العامة التابع للفورم
مثال:

كود :
Public Class Form1
    Public user1 As New UserControl1
    Public user2 As New UserControl2

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Panel1.Controls.Clear()
        Panel1.Controls.Add(user1)
        user1.Dock = DockStyle.Fill

    End Sub

ثم عدل الكود الموجود في  UserControl1 ليكون كما يلي:


كود :
Public Class UserControl1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Form1.Panel1.Controls.Clear()
        Form1.Panel1.Controls.Add(Form1.user2)
        'Form1.user1.Dock = DockStyle.Fill

    End Sub
End Class

وفي الـ UserControl2 


كود :
Public Class UserControl2

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Form1.Panel1.Controls.Clear()
        Form1.Panel1.Controls.Add(Form1.user1)
        ' او يمكنك استدعاء حدث الضغط على الزر الموجود في فورم 1
        'Form1.Button1.PerformClick()
    End Sub
End Class


كما توجد طريقة اخرى وهي ان تقوم بوضع كلا العنصرين داخل Form1.Panel بحيث يكون الـ UserControl2 في الاسفل وفوقه UserControl1


استبدل الكود الموجود في فورم 1 بالتالي

كود :
Public Class Form1
    Public user1 As New UserControl1
    Public user2 As New UserControl2

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Panel1.Controls.Clear()
        Panel1.Controls.Add(user1)
        Panel1.Controls.Add(user2)
        user1.Dock = DockStyle.Fill

    End Sub
End Class


استبدل كود الضغط على الزر في الـ UserControl1 بالتالي:


كود :
Public Class UserControl1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Me.SendToBack()
        'او يمكنك استخدام احد الاكواد التي في الاسفل بدل من الكود الذي في الاعلى
        'Form1.user2.BringToFront()
        'يجب استخدام كلا الكودين التاليين مع بعض
        'Me.Visible = False
        'Form1.user2.Visible = True


    End Sub
End Class


 الكود الخاص بالـUserControl2

كود :
Public Class UserControl2

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Me.SendToBack()
        ' او يمكنك اتبدال الكود السابق باي واحد من التي في الاسفل فقط الغي تعليق الكود
        'Form1.Button1.PerformClick()
        'Form1.user1.BringToFront()
        'يجب استخدام كلا الكودين التاليين مع بعض
        'Me.Visible = False
        'Form1.user1.Visible = True
    End Sub
End Class
أسأل الله أن يزيد بعلمكم ماشاء الله تبارك الله جميل جداً شكراً لكم 

يبقى سؤال إذا سمحتم  Blush

عندي الفورم الذي أستقبل فيه UserControls 

محتاج كود تحقق في الفورم  أتحقق ماهي UserControls  المعروضه فيه حالياً