PDA

View Full Version : سوال: مشکل در MDIForm



hamirayan
دوشنبه 07 مرداد 1392, 23:08 عصر
با سلام
بنده در یک پروژه به شکل زیر - خاصیت IsMdiContainer فرم را برابر با True قرار دادم .

108133

وبرای باز شدن فرم 2 کد زیر را نوشتم:


Form2 fr2 = new Form2();
fr2.MdiParent = this;
fr2.Show();

اما هنگامی که فرم 2 باز می شود مانند شکل زیر در زیر picturebox،Panel و کامپوننت ساعت قرار می گیرد؟

108134

برای اینکه این اتفاق نیفتد(قرار نگرفتن فرم های فرزند در زیر اشیا فرم والد) ولی فرم های فرزند خاصیت مینیمایز شدن و نمایش در گوشه ی فرم اصلی را داشته باشند چه باید کرد؟:متفکر:
مم ن.

hamirayan
سه شنبه 08 مرداد 1392, 10:03 صبح
یعنی واقعاً هیچ یک از دوستان جوابی برای این پست ندارند؟؟؟؟!!!!!

ashkan1234
سه شنبه 08 مرداد 1392, 11:12 صبح
سلام!
توی رویداد فرم لود٬فرم2 این دو خط رو بنویس:
this.BringToFront();
this.TopMost = true;

hamirayan
سه شنبه 08 مرداد 1392, 11:18 صبح
سلام!
توی رویداد فرم لود٬فرم2 این دو خط رو بنویس:
this.BringToFront();
this.TopMost = true;

با تشکر از پاسخگویی شما.
باز هم نمیشه...
قبلاً هم این کار را کرده بودم و نشد...:گریه:

ashkan1234
سه شنبه 08 مرداد 1392, 11:29 صبح
خواهش میشه!
اگر سورست در همسن حده بذار ببینم!

hamirayan
سه شنبه 08 مرداد 1392, 12:37 عصر
اینم از سورس،البته چیز خاصی نداره:
108154

ashkan1234
سه شنبه 08 مرداد 1392, 13:05 عصر
در حالت عادی که خودم فرم ساختم مشکلی نبود!
واسه همین گفتم سورس بذار!
این خط رو پاک کن:
fr2.MdiParent = this;
یبار Rebuild و یبار هم Clean Solution رو بزن مشکلت حل میشه!
موفق باشی....:لبخند:

hamirayan
سه شنبه 08 مرداد 1392, 13:16 عصر
در حالت عادی که خودم فرم ساختم مشکلی نبود!
واسه همین گفتم سورس بذار!
این خط رو پاک کن:
fr2.MdiParent = this;
یبار Rebuild و یبار هم Clean Solution رو بزن مشکلت حل میشه!
موفق باشی....:لبخند:

خوب اینطوری که وقتی فرم را مینیمایز میکنی دیگه به شکل کوچیک در فرم اولیه نشون نمیده که...
میخوام اینجوری نشون بده فرم رو...
108157

sohil_ww
سه شنبه 08 مرداد 1392, 13:19 عصر
در حالت عادی که خودم فرم ساختم مشکلی نبود!
واسه همین گفتم سورس بذار!
این خط رو پاک کن:
fr2.MdiParent = this;
یبار Rebuild و یبار هم Clean Solution رو بزن مشکلت حل میشه!
موفق باشی....:لبخند:

دوست عزیز اگه اون خط حذف کنه که دیگه فرم والد و عمویی نیستش که(:افسرده:)

ashkan1234
سه شنبه 08 مرداد 1392, 13:49 عصر
آره راست میگی حواسم نبود!
خوب چون mdi فرم پدر شده و فرم دوم فرزند٬پس در نتیجه اشیای روی فرم والد هم انگار خود فرم والد هستند و بر سایر فرمهای فرزند ارجع ترند!
چز اینکه با کد نویسی بتونی وقتی فرم دوم میاد روی شی اون شی رو مخفی و وقتی از روی اون شی اومد کنار٬اون شی نمایش داده بشه!
البته اینجور راهها زیاده!
:لبخند:

ashkan1234
سه شنبه 08 مرداد 1392, 14:39 عصر
راستی یه راه دیگه هم هست یادم رفت بگم!
البته اگه بکارت بیاد!
وفتی داری فرم فرزند رو لود میکنی اشیای روی فرم والد رو مخفی کنی!
panel1.Hide();
button1.Hide();
و برای نمایش مجدد بعد از بسته شدن فرم فرزند:
private void Form1_MdiChildActivate(object sender, EventArgs e)
{
button1.Show();
panel1.Show();
}
حواست باشه فرم1 والد هستش و توی رویداد MdiChildActivate فرم والد باید اشیا رو دوباره نمایش یدی!
همینقدر بلد بودم...:لبخند: