PDA

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



saeidgab
سه شنبه 19 مرداد 1389, 13:34 عصر
سلام، یه فرم دارم که هنگام لود شدنش میخوام یک سری شرایط رو چک کنم و اگر شرایط محرز نشد فرم لود نشه. حالا چطوری میتونم تو Form_Load از لود شدن فرم جلوگیری کنم؟

saeedalg
سه شنبه 19 مرداد 1389, 13:47 عصر
یه متد OnShown رو میتونید به صورت زیر override کنید تا بررسی هاتون رو انجام بدید، داخل اون فرم رو Close کنید (در صورتی که خواسته هاتون رو براورده نکرد):


protected override void OnShown(EventArgs e)
{
if (!AllowToShow())
this.Close()
base.OnShown()
}

bool AllowToShow
{
do your checking and return result.
}

اَرژنگ
سه شنبه 19 مرداد 1389, 14:20 عصر
سلام، یه فرم دارم که هنگام لود شدنش میخوام یک سری شرایط رو چک کنم و اگر شرایط محرز نشد فرم لود نشه. حالا چطوری میتونم تو Form_Load از لود شدن فرم جلوگیری کنم؟
این نوع سوالها یک نشانه خوبی است که برایه رسیدن به یک هدف خاص به روشهایه اشتباه دارند متوصل میشند. مشکل اصلی چیه که به این روش میخواهید متوصل بشید؟

saeidgab
سه شنبه 19 مرداد 1389, 14:22 عصر
با تشکر از پاسخ دوستان، راه حل آقا سعید مشکلمو حل کرد، با این حال میخواستم بدونم متدی هست که قبل از Form_Load اجرا بشه. Form_Load من یکمی سنگینی برای همین یه تاخیر بوجود میاد. میخوام ببینم متدی هست که با Override اون قبل از فرم لود شرایط رو چک کنم؟

Rocker
سه شنبه 19 مرداد 1389, 14:37 عصر
این نوع سوالها یک نشانه خوبی است که برایه رسیدن به یک هدف خاص به روشهایه اشتباه دارند متوصل میشند. مشکل اصلی چیه که به این روش میخواهید متوصل بشید؟

تایید . . .

mmd2009
سه شنبه 19 مرداد 1389, 14:38 عصر
خب اگر نمیخوای سنگین بشه میتونی از بکگراندوورکر استفاده بکنی یا theard

saeedalg
شنبه 23 مرداد 1389, 13:02 عصر
این نوع سوالها یک نشانه خوبی است که برایه رسیدن به یک هدف خاص به روشهایه اشتباه دارند متوصل میشند. مشکل اصلی چیه که به این روش میخواهید متوصل بشید؟

من که نفهمیدم چه نشانه ای؟ مثلا شما یه برنامه نوشتی دو سه بار کاربر لاگین غلط بکنه برنامه رو Close میکنه App هم انقدر بزرگ نیست که بخوای FACAD به کار ببری در واقع FACAD میشه خود MainForm اونوقت بعد اینکه 3 بار اشتباه لاگین کرد mainform دیگه باید بسته بشه این چه مشکلی داره؟

Masoome_das
شنبه 23 مرداد 1389, 13:38 عصر
شما پیش از این که فرمتون بخواهید لود بشه بررسی ها را برای باز شدن فرم یا باز نشدن فرم انجام دهید
یعنی شما پس از فرم لاگین وارد یک فرم جدید می شوید پس برای رسیدن به این فرم جدید هر بررسی که لازمه در همون فرم لاگین انجام بدهید نه اینکه فرم را باز کنید سپس بررسی کنید که آیا این فرم باید باز می شد یا خیر


if(i<3)
{
Form1 f=new Form1()
Form1.Show();
}

saeedalg
شنبه 23 مرداد 1389, 14:04 عصر
شما پیش از این که فرمتون بخواهید لود بشه بررسی ها را برای باز شدن فرم یا باز نشدن فرم انجام دهید
یعنی شما پس از فرم لاگین وارد یک فرم جدید می شوید پس برای رسیدن به این فرم جدید هر بررسی که لازمه در همون فرم لاگین انجام بدهید نه اینکه فرم را باز کنید سپس بررسی کنید که آیا این فرم باید باز می شد یا خیر


if(i<3)
{
Form1 f=new Form1()
Form1.Show();
}


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