صفحه: [1]   پایین
  چاپ صفحه  
نويسنده موضوع: show dialog  (دفعات بازدید: 656 بار)
sepehr70
کاربر نیمه فعال
**

تشكرها : 6
آفلاین آفلاین

جنسيت : پسر
تعداد ارسال: 54


من یه ایرانیم که صفا و سادگی رسممه


ديدن مشخصات
« : 19 خرداد 1390,ساعت 21:02:07 »

سلام
من دوتا فرم دارم و یک تایمر که هر 5 ثانیه یک بار این تایمر فرم دوم رو show dialog می کنه
حالا من میخوام که چک کنم اگر فرم دوم شو شده دیگه شو نکنش یعنی به طور مفهومی کد این چطوری میشه  (()if(Form2=ShowDialog
ممنون میشم راهنمایی کنید
خارج شده است
كیانی
مديريت سايت
*****

تشكرها : 145
آنلاین آنلاین

جنسيت : پسر
تعداد ارسال: 1146


اليس الله بكاف عبده ؟!


ديدن مشخصات WWW
« پاسخ #1 : 20 خرداد 1390,ساعت 16:48:02 »

سلام
این تاپیک رو مطالعه کنید فکر کنم پاسخ خود را در آن خواهید یافت :

*_ باز كردن صفحه(فرم) دوم در برنامه

پیروز باشید.
خارج شده است

" فقال رب انی لما انزلت الی من خیر فقیر (قصص 24) * اللهم عجل لوليك الفرج"
جستجو | قوانين انجمن | آياپير | مقالات تخصصي  |عضويت درتيم آياپير
حسین جهانبخش
Aiapir Team
*

تشكرها : 44
آفلاین آفلاین

جنسيت : پسر
تعداد ارسال: 107


دانشجوی فوق لیسانس علوم کامپیوتر


ديدن مشخصات WWW
« پاسخ #2 : 20 خرداد 1390,ساعت 19:51:09 »

سلام
من دوتا فرم دارم و یک تایمر که هر 5 ثانیه یک بار این تایمر فرم دوم رو show dialog می کنه
حالا من میخوام که چک کنم اگر فرم دوم شو شده دیگه شو نکنش یعنی به طور مفهومی کد این چطوری میشه  (()if(Form2=ShowDialog
ممنون میشم راهنمایی کنید

در پاسخ به سوال شما من یک چیز تونستم پیدا کنم و فکر می کنم کارایی داشته باشه.
راه حل به این صورته که ابتدا یک تابع می نویسیم که بفهیم که چه فرم هایی باز هستند و تابع به صورت زیره:

کد:
public static Form IsFormAlreadyOpen(Type FormType)
{
   foreach (Form OpenForm in Application.OpenForms)
   {
      if (OpenForm.GetType() == FormType)
         return OpenForm;
   }

   return null;
}

حال می خواهیم فرمی را باز و یا روی آن فوکوس کنیم با استفاده از مقداری که تابع بالا بر میگرداند می توانیم اول مطمئن بشویم که فرم باز است یا نه و سپس اقدام لازم رو برای اون انجام بدیم.
در حقیقت شما برای تیک تایمرتون باید از کد زیر استفاده کنید: در اینجا ابتدا یک نمونه از فرم دوم ایجاد میشه ولی مقدار نال داره و بعد بررسی می کنه که آن فرم جزء فرم های باز است یا بسته. اگر بسته باشد یک شیء جدید از آن ایجاد کرده و آن را show() می کند و اگر باز باشد که بستگی به خودتان دارد و هر کاری می توانید با آن انجام دهید.

کد:
UserForm UForm = null;
if ((UForm = IsFormAlreadyOpen(typeof(UserForm)) == null)
{
    UForm = new UserForm();
    UForm.Show();
}
else
{
    UForm.DoWhatever(); // may be UForm.Select();
}

البته این جوابیه که من تونستم پیدا کنم، امتحان کنید و نتیجه رو اطلاع بدین  چشمک
خارج شده است

حسین جهانبخش
Aiapir Team
*

تشكرها : 44
آفلاین آفلاین

جنسيت : پسر
تعداد ارسال: 107


دانشجوی فوق لیسانس علوم کامپیوتر


ديدن مشخصات WWW
« پاسخ #3 : 20 خرداد 1390,ساعت 19:58:59 »

این هم یه راه حل دیگه شبیه همون راه حله قبلی.
در قبلی ما همه فرم های باز رو پیدا کرده و بررسی می کردیم فرم مورد نظر ما جزء اونها هست یا نه. ولی اینجا ما فقط بررسی می کنیم همون فرمی که می خواهیم باز است یا خیر:

کد:
private bool CheckForm(Form form)
{
   foreach (Form f in Application.OpenForms)
       if (form == f)
          return true;
 
 return false;
}


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

کد:
if (!CheckForm(form2))
  {
      // do something
  }
خارج شده است

sepehr70
کاربر نیمه فعال
**

تشكرها : 6
آفلاین آفلاین

جنسيت : پسر
تعداد ارسال: 54


من یه ایرانیم که صفا و سادگی رسممه


ديدن مشخصات
« پاسخ #4 : 20 خرداد 1390,ساعت 21:47:04 »

ممنون از کمکتون
یه سوال الان من فرم دومو جای کدوم فرم ها تو این کد باید بذارم؟؟؟
« آخرين ويرايش: 21 خرداد 1390,ساعت 09:04:05 توسط كیانی » خارج شده است
حسین جهانبخش
Aiapir Team
*

تشكرها : 44
آفلاین آفلاین

جنسيت : پسر
تعداد ارسال: 107


دانشجوی فوق لیسانس علوم کامپیوتر


ديدن مشخصات WWW
« پاسخ #5 : 20 خرداد 1390,ساعت 22:37:44 »

در فایل ضمیمه یک نمونه کامل از کاری که شما می خواهید انجام بدید رو اجرا کردم. یه تایمر که بعد 5 ثانیه در صورتی که فرم 2 باز نباشد اون رو باز می کنه. امیدوارم بتونه به شما کمک کنه.

اگه بازم سوالی بود در خدمتم.

کد:
http://it-cloop.persiangig.com/aiapir/test2form.zip


« آخرين ويرايش: 21 خرداد 1390,ساعت 09:04:34 توسط كیانی » خارج شده است

sepehr70
کاربر نیمه فعال
**

تشكرها : 6
آفلاین آفلاین

جنسيت : پسر
تعداد ارسال: 54


من یه ایرانیم که صفا و سادگی رسممه


ديدن مشخصات
« پاسخ #6 : 21 خرداد 1390,ساعت 13:09:16 »

درست شد دست شما درد نکنه هم آقای جهانبخش هم آقای کیانی
خارج شده است
صفحه: [1]   بالا
  چاپ صفحه  
 
پرش به :