PDA

View Full Version : سوال: غیرفعال کردن منو در فرم اصلی



طبیب دل
دوشنبه 22 مهر 1387, 17:12 عصر
دوستان عزیز سلام
من یه پروژه نوشتم که تعدادی فرم فرزند و یک فرم والد دارم در فرم والد یک منو دارم که با کلیک روی هر item منو یکی از فرم های فرزند باز میشه
چی کار کنم که با باز شدن یک فرم فرزند منو در فرم والد غیر فعال بشه و با بسته شدن فرم فرزند منو در فرم والد فعال بشه؟
البته چند نفر از دوستان قبلا توضیحاتی دادند اما چون مبتدی هستم نتونستم کدشو پیاده کنم. اگر ممکن است کدش رو هم بفرستید یا مثالی مشابه بزنید. با تشکر.

طبیب دل
سه شنبه 23 مهر 1387, 13:26 عصر
دوستان عزیز سلام
من یه پروژه نوشتم که تعدادی فرم فرزند و یک فرم والد دارم در فرم والد یک منو دارم که با کلیک روی هر item منو یکی از فرم های فرزند باز میشه
چی کار کنم که با باز شدن یک فرم فرزند منو در فرم والد غیر فعال بشه و با بسته شدن فرم فرزند منو در فرم والد فعال بشه؟
البته چند نفر از دوستان قبلا توضیحاتی دادند اما چون مبتدی هستم نتونستم کدشو پیاده کنم. اگر ممکن است کدش رو هم بفرستید یا مثالی مشابه بزنید. با تشکر.
چرا هیچ کی جواب نمیده. خیلی نیاز دارم.

noroozifar
سه شنبه 23 مهر 1387, 22:06 عصر
چرا هیچ کی جواب نمیده. خیلی نیاز دارم.
در فرم والدت وقتی می خواهی فرم فرزندت را صدا بزنی از این روش استفاده کن
form frm=new farzandform();
frm .showdialog();
این باعث می شود که شما تا زمانیکه فرم فرزند را نبندی فرم والد را نتوانی استفاده کنی و نتوانی رو هیچ یک از گزینه های فرم والد کلیک کنی .
یک روش دیگر که می تونی بر روی تمام خصوصیات یا حتی کنترل های فرم والد کلیک دسترسی داشته باشی و آن را تغییر دهی مثل خصوصیت enable فرم اینکه در فرم والد دستور زیر را بنویسی
this.enable=false;
form frm=new farzandform();
frm.show();
و در فرم فرزند در درون کلید مثلا خروج چنین بنویسی
foreach (form frm in applicationform.open)
{
if (frm is valedform){
form f1=(valedform)frm ;
f1.enable=true ;
}
}
البته من توسیعه می کنم از روش اول استفاده کنی چون روش دوم شاید یک کم برات سخت باشه

طبیب دل
چهارشنبه 24 مهر 1387, 22:36 عصر
دوست عزیز سلام
روش اول درسته ولی باعث میشه که فرم فرزند با drog کردن از فرم والد خارج بشه آیا می شه این مشکل رو حل کرد؟
از پاسختون ممنونم

ali.aghdam
دوشنبه 19 بهمن 1388, 18:53 عصر
منم قبلا این مشکل را داشتم کدش رو نوشتم شما هم می تونید از اون استفاده کنید


public void open_Window()
{
if (Application.OpenForms.Count > 1 )
{
menu1.Enable = false;
}
else
{
menu1.Enable = true;
}
}


حالا کافیست در هنگام ایجاد فرم جدید این تابع رو اجرا کنید.