الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Loading MDIChild into MDI Wndow from a Dialog

مغلق
بدأه jrahma في 27 مارس 2006 · 6 رد · 705 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

Hi,

I have the following forms:

اقتباس
form_MDIChild

form_MDIContainer

when a user choose a menu item on form_MDIContainer it will display a login dialog a\d i want if login was successfull to load the form_MDIChild into the form_MDIContainer. I tried this code before closing the login dialog but no luck.

frmWorkingArea form_MDIChild = new frmWorkingArea();  

frmMain form_MDIContainer = new frmMain(); 

form_MDIChild.MdiParent = form_MDIContainer;

form_MDIChild.Show();
#2

لماذا تقوم بعمل Object جديد من frmMain ؟ فمن المفترض أنها ستكون موجوده دائما.

اجعل أولا الخاصيه IsMdiContainer للـ frmMain بـ true.

بعد ذلك , عندما تريد أن تعرض الـ Child :

frmWorkingArea myKid = new frmWorkingArea();
myKid.MdiParent = this;
myKid.Show();

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#3

نعم هي موجودة ولكن الفورم الحالية هي dialog على frmMain ولكن frmWorkingArea ستظهر على frmMain بعد استدعائها من الـdialog.

#4

طيب أكيد الـ frmDialog هى أيضا MDiChild والـ Parent الخاص بها هى frmMain أيضا ,, أى أن frmDialog و frmWorkingArea أخوات لأنهما يتشاركان نفس الأب وهو frmMain ,, وبناء على هذا الكلام فالكود لن يختلف كثيرا ::

frmWorkingArea myBro = new frmWorkingArea();
myBro.MdiParent = this.MdiParent;
myBro.Show();
this.Close();

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#5

تظهر الفورم ولكن كفورم عادية وليست MDIChild

#6

لكى يعمل الكود السابق يجب أن تكون الـ frmLogin هى الأخرى Child وأبوها هى frmMain. فان لم يعمل الكود السابق فاذا frmLogin ليست MDiChild وهذا أمر لا أتخيله !

اذا كنت لا تريد أن تجعل frmLogin هى الأخرى Child , فيمكنك أن تضع بها Property تحتوي على Reference للـ frmMain.

اكتب ذلك في الـ frmLogin لانشاء الـ Property :

private Form theParentForm;
public Form TheParentForm
{
get {return this.theParentForm;}
set {this.theParentForm = value;}
}

وأنت في الـ frmMain عندما تريد أن تستدعي الـ frmLogin لا تنسى أن تضعها في الـ Property :

// frmLogin theLogin;
if(theLogin == null)
theLogin = new frmLogin();
theLogin.TheParentForm = this;
theLogin.Show();

وانت في frmLogin وتريد أن تفتح frmWorkingArea جوه الـ frmMain اكتب :

frmWorkingArea theChild = new frmWorkingArea();
theChild.MdiParent = this.TheParentForm;
theChild.Show();
this.Close();

واذا كنت لا تريد انشاء خواص يمكنك استخدام أى خاصيه تخزن Object مثل خاصية Tag أو أى شئ آخر , ولكن سينبغي عليك تحويلها الى Form.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#7

أخيراًتم حل المشكلة

شكرا أخي معتز

هذا الموضوع مغلق.

مواضيع مشابهة