View Full Version : جلوگیری از Deactive شدن فرم
reza_magical
پنج شنبه 10 شهریور 1390, 11:40 صبح
سلام من یه برنامه نوشتم که یک ساب فرم داره
می خوام ساب فرم وقتی باز هست قابل Deactive شدن نباشه.
یعنی زمانی که فرم باز هست ، اگر کاربر بخواد بره توی قسمت دیگه ای از برنامه ، باید حتما ساب فرم جاری رو ببنده تا بتونه بره یک قسمت دیگه.
در واقع رویداد Deactive نباید هیچوقت اجرا بشه، و اگه کاربر جایی بیرون از ساب فرم کلیک کرد دوباره همون ساب فرم فعال بشه.
این کد هم توی رویداد Deactive نوشتم اما بازم فایده نداشت:
this.activate();
کسی اگه می تونه کمکم کنه ، بگه ممنون میشم.
:قلب::قلب::قلب::قلب::قلب::قلب:: لب::قلب::قلب::قلب::قلب::قلب::ق ب::قلب::قلب:
Legend M.A.R
پنج شنبه 10 شهریور 1390, 11:45 صبح
خوب فرم رو به صورت FormName.ShowDialog(MainForm) نمایش بده
NeemaSakhtemani
پنج شنبه 10 شهریور 1390, 11:53 صبح
سلام.
دوست عزیز ،توصیه من اینه که تو رویداد Form_Closing با یه شرط که مقدار یه متغیر boolean رو چک می کنه بنویسی e.cancel = true;
این متغیر بولین که تو برنامه نوشتی تایین کننده ی اینه که ساب فرم بست بشه یا نه.
reza_magical
پنج شنبه 10 شهریور 1390, 15:47 عصر
خوب فرم رو به صورت FormName.ShowDialog(MainForm) نمایش بده
چیزی که گفتین ، توی سی شارپ صحیح نیست.
سلام.
دوست عزیز ،توصیه من اینه که تو رویداد Form_Closing با یه شرط که مقدار یه متغیر boolean رو چک می کنه بنویسی e.cancel = true;
این متغیر بولین که تو برنامه نوشتی تایین کننده ی اینه که ساب فرم بست بشه یا نه.
ممنونم از جواب ، اما شما منظور من رو متوجه نشدید.
من می خوام تا زمانی که فرم جاری باز هست ، کاربر نتونه به فرم اصلی برگرده.
اگر فرم فعلی باز باشه و کاربر روی فرم اصلی کلیک کرد ، فرم فعلی غیرفعال نشه .
مثلا شما توی IE اگر Folder Option رو باز کنید ، تا زمانی که Folder Option باز هست ، نمی تونید از IE استفاده کنید و آدرس سایت رو بنویسید ، و حتما باید قبلش Folder Option رو ببندید.
من هم دقیقا همین کار رو می خوام رو فرمم انجام بدم.
تا فرم جاری بسته نشده ، فرم اصلی اکتیو نشه.
Directx
پنج شنبه 10 شهریور 1390, 15:56 عصر
دوستمون legend درست میگن یعنی اساس ایجاد متد showDialog همینه دیگه مثلا می خوایین فرم 2 تا یه کاریو نکنیم غیر فعال نشه کدش میشه این
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog();
}
roboticsexpert
پنج شنبه 10 شهریور 1390, 19:05 عصر
سلام....
می تونید وقتی focus از روی فورم 2 ورداشته شد متغییری رو تغییر بدین و در فورم 1 چک کنید ... اگه تغییر کرده بود focus رو به فورم 2 برگردونید....
NeemaSakhtemani
شنبه 12 شهریور 1390, 06:36 صبح
دوستمون legend درست میگن یعنی اساس ایجاد متد showDialog همینه دیگه مثلا می خوایین فرم 2 تا یه کاریو نکنیم غیر فعال نشه کدش میشه این
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog();
}
منم با این کار موافقم.
Parham.D
شنبه 12 شهریور 1390, 10:48 صبح
چیزی که گفتین ، توی سی شارپ صحیح نیست.
ممنونم از جواب ، اما شما منظور من رو متوجه نشدید.
من می خوام تا زمانی که فرم جاری باز هست ، کاربر نتونه به فرم اصلی برگرده.
اگر فرم فعلی باز باشه و کاربر روی فرم اصلی کلیک کرد ، فرم فعلی غیرفعال نشه .
مثلا شما توی IE اگر Folder Option رو باز کنید ، تا زمانی که Folder Option باز هست ، نمی تونید از IE استفاده کنید و آدرس سایت رو بنویسید ، و حتما باید قبلش Folder Option رو ببندید.
من هم دقیقا همین کار رو می خوام رو فرمم انجام بدم.
تا فرم جاری بسته نشده ، فرم اصلی اکتیو نشه.
چرا ShowDialog در سی شارپ صحیح نیست؟!
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.