السـلام عليكم روحمة الله وبركاته
عندي فورم رئيسية أستقبل فيها اليوزر كنترول داخلها
ولكن واجهتني مشكله وهي عند أستدعاء 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
أسأل الله أن يزيد بعلمكم ماشاء الله تبارك الله جميل جداً شكراً لكم
يبقى سؤال إذا سمحتم
عندي الفورم الذي أستقبل فيه UserControls
محتاج كود تحقق في الفورم أتحقق ماهي UserControls المعروضه فيه حالياً