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

نسخة كاملة : معلومة ::: IsMdiContainer
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كاتب الموضوع : BADRMEDIA




IsMdiContainer :

إلى المبتدئين فى الدوت نت وإلى من انتقل من VB 0 – 6

كيف نجعل للمشروع نافذة رئيسية ونضمن بداخلها نوافذ أخري ونتحكم فيها


- نفتح مشروع جديد - Windows Form
- نجد أن هناك فورم رئيسية تنشأ تلقائى اسمها Form1
- ننشأ أيضا فورم أخري ويتم اضافتها وتأخذ اسم تلقائى Form2
- نذهب إلى قائمة الخصائص لهذا النافذة ونجعلها نافذة حاضنة عن طريق الخاصية IsMdiContainer
بحيث نجعل القيمة لها True
- من قائمة الأدوات ToolBox نقوم بارفاق الأداة MenuStrip على الفورم Form1
- بعد اضافتها نجد أن أداة القائمة هذه أصبحت فى اعلى الفورم Form1 وسهلة التحرير لتكوين القوائم
ونجد أنها جاهزة لانشاءأول قائمة لك – فى الخلية النشطة فيها ننشأ أول قائمة لنا ونسميها File وسنجد أن المؤشر ينتقل لأسفل فنقوم بانشاء هذه العناصر

My Child
Close All
ArrangeIcons
Cascade
TileHorizontal
TileVertical

- بعد أن أنشأنا العناصر نختار أول عنصر وهو
My Child ونضغط عليه مرتين بحيث يظهر محرر الكود ويولد الحدث الخاص بالضغط على العنصر

ونكتب له هذا الكود


كود :
Private Sub MyChildToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyChildToolStripMenuItem.Click
Dim frm As New Form2
frm.MdiParent = Me
frm.Show()
End Sub
وظيفة هذا العنصر – هو أنه بالضغط عليه يقوم بتكوين فورم جديدة من Form2 ويقوم باظهارها


كود :
Dim frm As New Form2
هنا عرفنا متغير من نوع Form2 اسميناه frm


كود :
frm.MdiParent = Me
هنا أسندنا إلى الخاصية MdiParent الخاصة بالمتغير frm

القيمة Form1 والتى كتبنا بالنيابة عنها كلمة Me لأننا نقف بداخل Form1

ومعنى ذلك أننا أفهمنا المتغير frm وهو نسخة من Form2 أن الفورم التى ستكون حاضنة لها هى Form1 أى هى ابن للأب Form1



كود :
frm.Show()

هنا قمنا باظهار الفورم


نختار العنصر Close All ونضغط عليه مرتين بحيث يظهر محرر الكود ويولد الحدث الخاص بالضغط على العنصر

ونكتب له هذا الكود


كود :
Private Sub CloseAllDToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CloseAllDToolStripMenuItem.Click
Dim frm As Form
For Each frm In Me.MdiChildren
frm.Close()
Next frm
End Sub


هذه هذا العنصر غلق جميع النوافذ المفتوحة بداخل Form1



كود :
Dim frm As New Form

هنا عرفنا متغير من نوع Form اسميناه frm


كود :
For Each frm In Me.MdiChildren
frm.Close()
Next frm
استخدمنا الحقلة For Each بحيث تقوم بالبحث عن أى فورم داخل الفورم Form وتكون هذه
الفورم ابن للفورم Form1

واذا وجد هذه الفورم يقوم باغلاقها


كود :
frm.Close()
لو أردنا أن يقوم باغلاق النوافذة المتولدة من Form2 فقط – كنا نعرف المتغير على أساس أنه نسخة من Form2 وليس Form عامة


كود :
Dim frm As New Form2

-----------------------------

- نختار العنصر ArrangeIcons ونضغط عليه مرتين بحيث يظهر محرر الكود ويولد الحدث الخاص بالضغط على العنصر

ونكتب له هذا الكود


كود :
Private Sub ArrangeIconsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ArrangeIconsToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.ArrangeIcons)
End Sub

نقوم هنا بعمل ترتيب للفورم الأبناء داخل الفورم الأب عن طريق الوصل بالخاصية LayoutMdi للفورم الأب أن نحدد طريقة ترتيب الفورم الأبناء بداخله وهى أربع طرق كالتالى

ArrangeIcons
Cascade
TileHorizontal
TileVertical

-----------------------------
الطريقة الثانية Cascade

- نختار العنصر Cascade ونضغط عليه مرتين بحيث يظهر محرر الكود ويولد الحدث الخاص بالضغط على العنصر

ونكتب له هذا الكود



كود :
Private Sub CascadeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CascadeToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub
-----------------------------
الطريقة الثالثة TileHorizontal

- نختار العنصر TileHorizontal ونضغط عليه مرتين بحيث يظهر محرر الكود ويولد الحدث الخاص بالضغط على العنصر

ونكتب له هذا الكود



كود :
Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TileHorizontalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub

-----------------------------
الطريقة الرابعة TileVertical

- نختار العنصر TileVerticalونضغط عليه مرتين بحيث يظهر محرر الكود ويولد الحدث الخاص بالضغط على العنصر

ونكتب له هذا الكود


كود :
Private Sub TileVerticalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TileVerticalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub