المساعدة - البحث - قائمة الأعضاء - التقويم
نسخة كاملة: سؤال عن Mdi Parent
برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة > منتديات البرمجة على Microsoft .NET Platform > منتدى مبرمجي Microsoft Visual C#.NET
ahmed01
بســم الله الـرحمــن الرحيــم
السادة مشرفي وأعضاء منتدى الفريق العربي للبرمجة
السلام عليكــم ورحمـة الله وبركاتــه


لدي استفسار حول mdiparent وكيفية التعامل معها

يوجد لدي ثلاث فورمات : وضعت الأول parent من خلال خاصية Ismdicontainer ووضعت داخل حدث Load الكود التالي :

كود
    Form2 child = new Form2();
            child.MdiParent = this;
            child.Show();


وظهرت كما في الصورة ادناه
إضغط لإظهار المرفق

اريد عند الضغط على الزر الموجود في فورم 2 اظهار فورم 3 في نفس شاشة mdi وإخفاء فورم 2
وأريد عند الضغط على الزر الآخر الموجود في شاشة فورم 2 يقوم بإخفاء label1 الموجود في form1

أرجو التعديل على البرنامج في المرفقات ودمتم.....

إضغط لإظهار المرفق
HassanAlattas
غير الكود كما يلي :
في الفورم 1
انسخ الكود
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. namespace WindowsApplication1
  11. {
  12. public partial class Form1 : Form
  13. {
  14. public Form1()
  15. {
  16. InitializeComponent();
  17. }
  18.  
  19. private void Form1_Load(object sender, EventArgs e)
  20. {
  21. Form2 child = new Form2();
  22. //****************************
  23. child.form1 = this;
  24. //****************************
  25. child.MdiParent = this;
  26. child.Show();
  27.  
  28. }
  29. }
  30. }
  31.  


في الفورم2
انسخ الكود
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. namespace WindowsApplication1
  11. {
  12. public partial class Form2 : Form
  13. {
  14. //****************************
  15. internal Form1 form1;
  16. //****************************
  17.  
  18. public Form2()
  19. {
  20. InitializeComponent();
  21. }
  22.  
  23. private void button1_Click(object sender, EventArgs e)
  24. {
  25. Form3 frm = new Form3();
  26. frm.MdiParent = form1;
  27. this.Hide();
  28. frm.Show();
  29. }
  30.  
  31. private void button2_Click(object sender, EventArgs e)
  32. {
  33. form1.label1.Visible = !form1.label1.Visible;
  34. }
  35. }
  36. }
  37.  




ahmed01
أخي العزيز ddata11 اشكر لك مرورك على الموضوع
الخطوة الأولى نفذت بشكل سليم
ولكن كود الخطوة الثانية لم ينفذ
كود
form1.label1.Visible = !form1.label1.Visible;


ارجو اعادة النظر في هذا الكود وشكرا
HassanAlattas
عفواً نسيت اذكر هذه النقطة,,,
افتح الفورم1 وغير الخاصية Modifiers
لـ label1 إلى public او internal
Enjo With Csharp
في الكود الاول
كود
child.form1 = this;

ممكن توضح بعد اذنك لاني مافهمتها
HassanAlattas
لازم يكون في الفورم2 مرجع للفورم1 علشان نقدر نتحكم في إظهار او اخفاء الـ label1
ولهذا السبب (ومن اجل التبسيط) عرفنا في الفورم2 التالي
كود
internal Form1 form1;


وعند تحميل الفورم وفي الدالة Form1_Load اسندنا قيمة لهذا المرجع
كود
child.form1 = this;


وفي الحدث button2_Click في الفورم2
كود
form1.label1.Visible = !form1.label1.Visible;


ملاحظة:
يمكننا الأستغناء عن هذه الخطوة
كود
internal Form1 form1;

واستخدام الخاصية MdiParent للفورم


ahmed01
أخي العزيز ddata11 بارك الله لك في علمك

ولك جزيل الشكر
هذه "نسخة - خفيفة" من محتويات الرئيسية للإستعراض الكامل مع المزيد من الصور والخيارات الرجاء إضغط هنا.
Invision Power Board © 2001-2009 Invision Power Services, Inc.