تقييم الموضوع :
  • 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 ك ب / التحميلات : 105)
الرد
تم الشكر بواسطة: الشاكي لله , احمد تيم
#3
الله لا يحرمك من الجنة والأجر شكرا لك على مساعدتي على رغم من انها أيام عيد 
 


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

frm.MdiParent = this.MdiParent;

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

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [C#.NET] كيفية عمل مثل هذا التضليل لاكثر من سطر فى برنامج ايات abdalamask 23 343 07-10-18, 08:17 AM
آخر رد: elgokr
  سؤال عن كيفية جلب صورة أو ملف صوتي من مجلد داخل المشروع بتقنية WPF younass 2 150 01-09-18, 02:43 PM
آخر رد: elgokr
  سؤال عن كيفية فتح فورم داخل فورم اخر بتقنية WPF younass 0 124 30-08-18, 01:28 AM
آخر رد: younass
  سؤال عن كيفية تحديد قيمة عمود في السطر المحدد في datagrid مع تقنية wpf younass 8 285 27-08-18, 11:10 PM
آخر رد: elgokr
  [VB.NET] كيفية استخدام Newtonsoft.Json باصدارين مختلفين اصدار رقم 9 و رقم 10 الماجيك مسعد 12 396 13-08-18, 09:02 PM
آخر رد: elgokr
  سؤال عن كيفية نقل البيانات من بعض الاعمدة من اكسس او الاكسل الى SQl server younass 1 122 04-08-18, 11:50 PM
آخر رد: Finish
  سؤال عن كيفية عرض حقول معينة في dataGridView1 علما اني الاستعلام يكون لجميع الحقول younass 2 153 29-07-18, 05:13 PM
آخر رد: younass
  [سؤال] كيفية استدعاء برنامج خارج السي شارب من خلال واجهة السي شارب؟؟؟؟؟؟؟ husseinaltaee 1 246 19-03-18, 01:06 AM
آخر رد: khodor1985
  كيفية دمج قاعدة بيانات شهادات طلاب في قالب شهادة جاهز جيولوجي مبتدئ 0 195 31-10-17, 12:19 AM
آخر رد: جيولوجي مبتدئ
  ياشباب لسمحتو في حد يساعدني في كيفية التعامل معا اداة listView للMediaPlayer abdaalwagih 0 272 27-04-17, 08:23 PM
آخر رد: abdaalwagih

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


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