تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيفية التعامل مع نماذج mdi
#1
السلام عليكم ورحمة الله وبركاته


اخواني في المنتدى الرائع لدي مشكلة في التعامل مع نموذج المتعددة (mdi) 
 لدي برنامج استخدمت فيه نموذج mdi ففي الشاشة الرئيسية والتي اسمها form1 لدي نموذجين احدهما اسمها form_big والذي اريد ان يفتح الفورم بشكل كبير دائما (maximize) .
والنموذج الاخر اسمه from_small والذي اريد ان ييفتح بشكل مصغر النموذج العادي (normal) .

المشكلة الاولى /عند فتح الفورم form_big لايفتح بشكل كبير maximize .
المشكلة اللثانية / عند فتح الفورم form_small اريده ان يكون ثابت بحجم صغير ,وعند فتح اي فورم اخر ثم الرجوع للنموذج المسمى form_small يفتح بشكل كبير.

االمرفق في الرابط 
https://dl.dropboxusercontent.com/u/8335...diform.rar



الرابط الموضوع
http://arabteam2000-forum.com/index.php/...D8%AC-mdi/
الرد }}}}
تم الشكر بواسطة:
#2
.....

النقطة الأولى (مهمة جداً):
دائماً إجعل الخاصية WindwState لنماذج الأبناء Normal وتغييرها يتم فقط بالكود
كود :
[ltr][/ltr]
Form frm2 =new Form2();
frm2.MdiParent = this;
frm2.WindowState = FormWindowState.Maximized;
frm2.Show();

النقطة الثانية:
طريقة ظهور نماذج الأبناء لا يمكن أن تكون إحداها كبيراً والأخر صغيراً.
وإذا أردت أن يكون أحد النماذج عادياً غير كبيراً فجعله منفصلا (غير تابع لـ MDIForm) أي لا تكتب له أمرMdiParent.



على حسب طلبك أن النموذج الأول كبيرا دائما والآخر صغير توجد طريقة تضمين الصغير داخل الكبير كالتالي مع اعتبار النقطة الأولى سابقاً:
كود :
// لابد من أن تكون خاصية حجم النافذة لجميع النماذج الأبناء عادية والتغيير يكون بالكود
FORM_BIG frm_big;
FORM_SMALL frm_small;

// تحميل الفورم الكبير أثناء التشغيل
private void Form1_Load(object sender, EventArgs e) {
   frm_big = new FORM_BIG();
   frm_big.ControlBox = false;
   frm_big.WindowState = FormWindowState.Maximized;
   frm_big.MdiParent = this;
   frm_big.Show();
}

private void فورمصغيرToolStripMenuItem_Click(object sender, EventArgs e) {
   frm_small = new FORM_SMALL();
   frm_small.TopLevel = false; // لابد من هذا الأمر
   frm_small.Parent = frm_big; // لاحظ طريقة النسب ولمن تم نسبه
   frm_small.BringToFront();   // لأننا نسبناه للنموذج الكبير لابد هنا من وضعه في مقدمة أدواته
   frm_small.WindowState = FormWindowState.Normal;
   frm_small.Show();

   // توسيط النموذج الصغيرة
   frm_small.Location= new Point((frm_small.Parent.ClientRectangle.Width -frm_small.Width)/2 ,
                                 (frm_small.Parent.ClientRectangle.Height -frm_small.Height)/2 );
}

.....


الملفات المرفقة
.rar   mdiform-2.rar (الحجم : 51.28 ك ب / التحميلات : 67)
الرد }}}}
تم الشكر بواسطة: الشاكي لله , احمد تيم
#3
الله لا يحرمك من الجنة والأجر شكرا لك على مساعدتي على رغم من انها أيام عيد 
 


جربيتها لكن لو كان لدي أكثر من نموذج هل سأكتب الكود في جميع النماذج 
 
علما انني نجحت في حل لكن لست مقتنع به 
كود :
FORM_SMALL frm = new FORM_SMALL();

frm.MdiParent = this.MdiParent;

frm.MdiParent = Application.OpenForms["FORM_SMALL"];

frm.Show();
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [C#.NET] بخصوص سلسلة التعامل مع الويب وسلسلة التعامل مع البرامج الاخ العزيز الشاكي لله GENNARO 0 75 05-10-16, 05:28 PM
آخر رد: GENNARO
  [سؤال] كيفية التعامل مع الاصناف في نظام محاسبي MOHAMMED ALHAZMEE 1 129 27-07-16, 04:50 PM
آخر رد: الوادي
  كيفية تغيير الفونت نور الدين وليد 3 179 03-06-16, 10:15 PM
آخر رد: نور الدين وليد
  كيفية تحريك الكنترول عن طريق السحب والافلات نور الدين وليد 4 196 28-05-16, 11:27 PM
آخر رد: نور الدين وليد
  [سؤال] كيفية تغيير Fontstyle نور الدين وليد 6 208 26-05-16, 12:48 AM
آخر رد: نور الدين وليد
  [سؤال] كيفية اعادة الترقيم عند الحزف السندباد المصري 4 983 01-10-15, 01:54 AM
آخر رد: زكريا النابهي
  كيفية أظهار رسالة (NotifyIcon) على يمين شريط المهام لجهاز محدد في الشبكة الداخلية ibnalforat74 6 673 25-09-15, 06:26 AM
آخر رد: أبو عمر
  [سؤال] كيفية جلب قيمة الذاكرة بالجهاز عبد الله 2 551 08-11-14, 07:42 PM
آخر رد: عبدالله
Video [سؤال] كيفية التعامل مع نوع الصورة png abdala 8 746 09-09-14, 12:49 PM
آخر رد: abdala
Bug كيفية تغيير لغة الكتابة قائد العهامي 4 1,074 08-02-14, 03:44 PM
آخر رد: الشاكي لله

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم