منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
استدعاء فورم بداخل Panil1 - نسخة قابلة للطباعة

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



استدعاء فورم بداخل Panil1 - Abdellah - 26-09-24

السلآم عليكم ورحمة الله وبركاته 


أنا عندي مشكله في استدعاء الفورم بداخل البنيل فقد وضعت هاذا الكود ولاكن عندما ينبثق  الفورم بداخل البنيل 
ينبثق ولاكن مع بعض  التأخير في العرض وكذالك تنسيق الادوات حسب حجم البنيل ويكون هاذا في الاستدعاء الأول فمثلا من بعد ما يفتح الفورم و استدعيت  فورما آخر  يحصل كما حصل في الأول وإذا رجعت إلى الفورم الاول فينبثق بسرعة فما أعرف سبب هذه المشكلة 

كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
   ' إفراغ Panel1 من أي عناصر موجودة
   Panel1.Controls.Clear()

   ' إنشاء نسخة من فورم ف2
   Dim f2 As New Form2()
   ' ضبط خصائص الفورم ليكون بلا حدود
   f2.TopLevel = False
   f2.FormBorderStyle = FormBorderStyle.None
   f2.Dock = DockStyle.Fill
   ' إضافته إلى الفورم الرئيسي (Panel1)
   Panel1.Controls.Add(f2)
   ' عرض الفورم
   f2.Show()
End Sub



RE: استدعاء فورم بداخل Panil1 - justforit - 26-09-24

و عليكم السلام ورحمة الله وبركاته
استخدم usercontrol


RE: استدعاء فورم بداخل Panil1 - Abdellah - 26-09-24

(26-09-24, 05:47 PM)justforit كتب : و عليكم السلام ورحمة الله وبركاته
استخدم usercontrol

شكرا أخي على الرد لقد جربت عدة أشياء ولاكن بدون جدوى عندي شيئا ربما يكون السبب
عندي Module لضبط حجم الفورم حسب كل الشاشات هل تريد مثال لترى بعينيك


RE: استدعاء فورم بداخل Panil1 - Taha Okla - 26-09-24

(26-09-24, 06:09 PM)Abdellah كتب : شكرا أخي على الرد لقد جربت عدة أشياء ولاكن بدون جدوى عندي شيئا ربما يكون السبب
عندي Module لضبط حجم الفورم حسب كل الشاشات هل تريد مثال لترى بعينيك

يوجد لكل أداة تستطيع وضعها على النافذة خاصية اسمها (Anchor) 
تستخدم لتحجيم أو تثبيت موقع الأداة من النافذة :
إما جهة اليسار دوماً أو اليمين دوماً ..
أو التكبير من جهتي اليمين واليسار والتثبيت لجهة العلوية أو السفلية
أو التحجيم بـ التصغير/التكبير مع تصغير/تكبير النافذة .. 
أو التثبيت من جهتي العلوية والسفلية   مع التثبيت من جهتي اليسار أو اليمين ...


هل جربت أن تستخدم هذه الخاصية بدلاً من استخدام كود تحجيم كل الأدوات مرة واحدة ؟؟؟

أليس من الأفضل الاعتماد على الخصائص الموجودة إفتراضياً مع الأدوات من استخدام أكواد بديلة ؟؟!!!


جرب أن تعتمد على هذه الخاصية بدلا من الكود البديل ..
وجرب هل ستظهر النافذة أسرع مع الأدوات التي عليها .. أم كلا الأمرين سيان !!! ...

إن كانت المشكلة عندك مشكلة احتواء :
- فيك تضع في حدث التحجيم لكل نافذة تريد إظهارها ضمن الـ Panel  الكود التالي (مثلا تريد اظهار Form2 تريد اظهارها في الـ Panel النافذة Form1):
كود :
Private Sub Form2_Resize(sender As Object, e As EventArgs) Handles Me.Resize
   Me.Size = Form1.Panel1.Size
End Sub


وضمن حدث التحجيم للنافذة التي فيها الـ Panel  الكود التالي  (مثلا Form1 فيها الـ Panel) :
كود :
Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles Me.Resize
   If Me.WindowState = FormWindowState.Minimized Then Exit Sub

   For Each frm As Form In Panel1.Controls
       frm.Size = Panel1.Size
   Next
End Sub



RE: استدعاء فورم بداخل Panil1 - Abdellah - 27-09-24

سلام عليكم أخي طه لقد جربت خاصية الادوات فهي رائعة ولاكن عندما يكون عندك عدة فورمات من الأفضل أن يكون عندك
كود يشمل المشروع بأكمله فالمشكلة عندي ليس هنا ولاكن عندما أستدعي الفورم بداخل البنيل هنا يبدا المشكل عند الانبثاق فيكون ببطء ولاكن يكون في المرة الأولى وفي المرة الثانية يكون عاديا ربما يبقى في الذاكرة وعندما أغلق المشروع و أفتحه
من جديد يعود مرة أخرى كما في الأول وإذ ا استدعيت الفور بطريقة عادية بدون بنيل فيكون عاديا مع العلم جربت هاذا الامر
بواسطة كروب بوكس وأدوات أخرى ولاكن نفس المشكل يتكرر.