PDA

View Full Version : جلوگیری از Deactive شدن فرم



reza_magical
پنج شنبه 10 شهریور 1390, 10:40 صبح
سلام من یه برنامه نوشتم که یک ساب فرم داره
می خوام ساب فرم وقتی باز هست قابل Deactive شدن نباشه.
یعنی زمانی که فرم باز هست ، اگر کاربر بخواد بره توی قسمت دیگه ای از برنامه ، باید حتما ساب فرم جاری رو ببنده تا بتونه بره یک قسمت دیگه.
در واقع رویداد Deactive نباید هیچوقت اجرا بشه، و اگه کاربر جایی بیرون از ساب فرم کلیک کرد دوباره همون ساب فرم فعال بشه.

این کد هم توی رویداد Deactive نوشتم اما بازم فایده نداشت:
this.activate();

کسی اگه می تونه کمکم کنه ، بگه ممنون میشم.
:قلب::قلب::قلب::قلب::قلب::قلب:: لب::قلب::قلب::قلب::قلب::قلب::ق ب::قلب::قلب:

Legend M.A.R
پنج شنبه 10 شهریور 1390, 10:45 صبح
خوب فرم رو به صورت FormName.ShowDialog(MainForm) نمایش بده

NeemaSakhtemani
پنج شنبه 10 شهریور 1390, 10:53 صبح
سلام.
دوست عزیز ،توصیه من اینه که تو رویداد Form_Closing با یه شرط که مقدار یه متغیر boolean رو چک می کنه بنویسی e.cancel = true;
این متغیر بولین که تو برنامه نوشتی تایین کننده ی اینه که ساب فرم بست بشه یا نه.

reza_magical
پنج شنبه 10 شهریور 1390, 14:47 عصر
خوب فرم رو به صورت FormName.ShowDialog(MainForm) نمایش بده
چیزی که گفتین ، توی سی شارپ صحیح نیست.


سلام.
دوست عزیز ،توصیه من اینه که تو رویداد Form_Closing با یه شرط که مقدار یه متغیر boolean رو چک می کنه بنویسی e.cancel = true;
این متغیر بولین که تو برنامه نوشتی تایین کننده ی اینه که ساب فرم بست بشه یا نه.

ممنونم از جواب ، اما شما منظور من رو متوجه نشدید.
من می خوام تا زمانی که فرم جاری باز هست ، کاربر نتونه به فرم اصلی برگرده.
اگر فرم فعلی باز باشه و کاربر روی فرم اصلی کلیک کرد ، فرم فعلی غیرفعال نشه .

مثلا شما توی IE اگر Folder Option رو باز کنید ، تا زمانی که Folder Option باز هست ، نمی تونید از IE استفاده کنید و آدرس سایت رو بنویسید ، و حتما باید قبلش Folder Option رو ببندید.
من هم دقیقا همین کار رو می خوام رو فرمم انجام بدم.
تا فرم جاری بسته نشده ، فرم اصلی اکتیو نشه.

Directx
پنج شنبه 10 شهریور 1390, 14:56 عصر
دوستمون legend درست میگن یعنی اساس ایجاد متد showDialog همینه دیگه مثلا می خوایین فرم 2 تا یه کاریو نکنیم غیر فعال نشه کدش میشه این

private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog();
}

roboticsexpert
پنج شنبه 10 شهریور 1390, 18:05 عصر
سلام....
می تونید وقتی focus از روی فورم 2 ورداشته شد متغییری رو تغییر بدین و در فورم 1 چک کنید ... اگه تغییر کرده بود focus رو به فورم 2 برگردونید....

NeemaSakhtemani
شنبه 12 شهریور 1390, 05:36 صبح
دوستمون legend درست میگن یعنی اساس ایجاد متد showDialog همینه دیگه مثلا می خوایین فرم 2 تا یه کاریو نکنیم غیر فعال نشه کدش میشه این

private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog();
}


منم با این کار موافقم.

Parham.D
شنبه 12 شهریور 1390, 09:48 صبح
چیزی که گفتین ، توی سی شارپ صحیح نیست.



ممنونم از جواب ، اما شما منظور من رو متوجه نشدید.
من می خوام تا زمانی که فرم جاری باز هست ، کاربر نتونه به فرم اصلی برگرده.
اگر فرم فعلی باز باشه و کاربر روی فرم اصلی کلیک کرد ، فرم فعلی غیرفعال نشه .

مثلا شما توی IE اگر Folder Option رو باز کنید ، تا زمانی که Folder Option باز هست ، نمی تونید از IE استفاده کنید و آدرس سایت رو بنویسید ، و حتما باید قبلش Folder Option رو ببندید.
من هم دقیقا همین کار رو می خوام رو فرمم انجام بدم.
تا فرم جاری بسته نشده ، فرم اصلی اکتیو نشه.

چرا ShowDialog در سی شارپ صحیح نیست؟!