PDA

View Full Version : مبتدی: فرم MDI



sajjadrad
جمعه 15 بهمن 1389, 12:51 عصر
سلام دوستان
من یه فرم طراحی کردم که موقع اجرا بصورت maximize باز میشه...
یه پنل به همراه یه دکمه هم طراحی کردم که وقتی دکمه رو میزنید یه فرم جدید به عنوان فرم فرزند تو فرم مادر باز میشه.
من میخوام که فرم فرزند نتونه از سمت چپ پنجره خارج بشه یا اینکه از زیر پنل رد بشه...میخوام تو فضای بین پنل و سمت چپ فرم زندانی باشه...
در ضمن میخوام وقتی که فرم فرزند باز شده در یه موقعیت خاصی نمایش داده بشه...مثلا در گوشه سمت چپ و بالا...
دو تا عکس اتچ کردم که نمیخوام این اتفاق بیوفته یعنی فرم نتونه از سمت چپ و زیر پنل رد شه..
مرسی

morteza271
جمعه 15 بهمن 1389, 14:37 عصر
اگه اين كار در داخل Propertice مادر نباشه فكر كنم بايد در رويداد LocationChange (البته نميدونم اين رويداد رو داره يا نه!!!) فرم فرزند بنويسي كه از يه محدوده اي ديگه جابجا نشه!

براي اينكه وقتي فرم فرزند باز ميشه در يه موقعيت خاص باشه ميتوني در رويدا Load اون Location بهش بدي.
موفق باشي

morteza.azad
جمعه 15 بهمن 1389, 17:51 عصر
پنل رو Dock کن از سمت راست تا به فرمت بچسبه، اگه اینجوری باشه فک کنم فرم فرزند دیگه نتونه بیاد زیرش.

sajjadrad
شنبه 16 بهمن 1389, 00:04 صبح
اگه اين كار در داخل Propertice مادر نباشه فكر كنم بايد در رويداد LocationChange (البته نميدونم اين رويداد رو داره يا نه!!!) فرم فرزند بنويسي كه از يه محدوده اي ديگه جابجا نشه!

براي اينكه وقتي فرم فرزند باز ميشه در يه موقعيت خاص باشه ميتوني در رويدا Load اون Location بهش بدي.
موفق باشي
مرسی
این طریقه location دادن چطوریه.... نمیدونم بهش مقدار میدم جواب نمیده...



پنل رو Dock کن از سمت راست تا به فرمت بچسبه، اگه اینجوری باشه فک کنم فرم فرزند دیگه نتونه بیاد زیرش. فرم منو داره داک کنم پنل میاد روی منو

morteza271
شنبه 16 بهمن 1389, 09:02 صبح
این طریقه location دادن چطوریه.... نمیدونم بهش مقدار میدم جواب نمیده...


با این دستور میتونی Location به فرمت بدی.

this.Location = new Point(x,y);
موفق باشی

complexcoding
شنبه 02 مهر 1390, 11:32 صبح
سلام اگر بخواییم فرم رو به عوان فرم مادر انتخاب کنیم گفته شده باید این کار رو کنیم که یه خورده برام نامفهومه یه ذره توضیح بدین ممنون می شم.
گفته : برای انتخاب فرم به عنوان فرم مادر روی نام پروژه راست کلیک و Properties و بقیه رو نمی دونم

mohamadz5
شنبه 02 مهر 1390, 11:45 صبح
سلام اگر بخواییم فرم رو به عوان فرم مادر انتخاب کنیم گفته شده باید این کار رو کنیم که یه خورده برام نامفهومه یه ذره توضیح بدین ممنون می شم.
گفته : برای انتخاب فرم به عنوان فرم مادر روی نام پروژه راست کلیک و Properties و بقیه رو نمی دونم

خاصیت IsMdiContainer فرم مادر ار برابر true قرار بده

complexcoding
شنبه 02 مهر 1390, 12:01 عصر
این کار رو انجام دادم ولی رنگ فرمم عوض شد و تغییری هم با backcolor نمی کنه؟
75690
رنگ فرمم control بود ولی حالا به شکل بالا در اومد؟

mohamadz5
شنبه 02 مهر 1390, 12:23 عصر
رنگ فرم مادر همینطوریه . البته با کد میشه تغییر داد . جستجو کن نتیجه میگیری

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


childformname childForm = new childformname ();
childForm.MdiParent = this;
childForm.Show();

f_pakzad
شنبه 02 مهر 1390, 12:24 عصر
متد زیر را در نظر بگیرید


private void SetBackGroundColorOfMDIForm()
{
foreach ( Control ctl in this.Controls )
{
if ((ctl) is MdiClient)

// If the control is the correct type,
// change the color.
{
ctl.BackColor = System.Drawing.Color.PaleGreen;
}
}

}


و در رویداد فرم لود


// Set the IsMdiContainer property to true.
IsMdiContainer = true;

// Set the child form's MdiParent property to
// the current form.
mdiChildForm.MdiParent = this;

// Call the method that changes the background color.
SetBackGroundColorOfMDIForm();