PDA

View Full Version : سوال: غیب شدن فرم وسط اجرای برنامه!!



Itist82
جمعه 28 آبان 1389, 18:27 عصر
سلام
یه برنامه با C#‎ 2008 نوشتم که اول یه صفحه لاگین باز می شه و کاربر که اطاعات رو وارد کرد بسته به نوع کاربر وارد صفحه مدیریت یا کاربر عادی می شه و visible بودن صفحه لاگین false می شه. صفحه مدیریت سالمه اما صفحه کاربر عادی یه هو وسط اجرا غیب می شه!! البته توی تاسک بار ویندوز هنوز آیکنش هست اما روی مونیتور دیده نمی شه.
کسی از بزرگواران می تونه کمک کنه که چه کار باید کرد تا غیب نشه؟
دو تا دکمه روی فرم هست که گاهی کاملا بدون دلیلی که من بفهمم با زدن یکیش این جوری می شه. (البته بدون کلیک کردن اونا هم این اتفاق می افته) توی رویداد کلیک یکی از دکمه ها ازدستور
this. visible=true
هم استفاده کردم و فایده نداشت.

در ضمن یه مدت FormBorderStyle رو None کرده بودم، فکر کردم شاید به اون مربوط باشه، حالا fixed singe کردم و هنوز همون جوریه

از توجه و کمکتون ممنونم

mehrsa_fr
جمعه 28 آبان 1389, 19:55 عصر
فرمتو به جای hide ,visible کن ببین درست میشه اگه نشد برنام رو ضمیمه کن

alishokr
جمعه 28 آبان 1389, 20:04 عصر
با عرض سلام .
در فرم لاگین ، بعد از اینکه کاربر تایید شد ، آیا داخل فرم لاگین فرم جدید رو new کرده و نشون میدید یا نه ؟
مثال زیر رو در نظر بگیرید :


private void btnLogin_Click(object sender, EventArgs e)
{
if (txUsername.Text == "A" && txPass.Text == "B")
{
frmMain m = new frmMain();
frmMain.Show();
}
}


اگر روش بالا رو استفاده میکنید ، بنظرم بهتر باشه ، نمایش فرم اصلی رو از طریق کلاسی که متد main در اون قرار داره (بطور معمول program) قرار بدید .

tooraj_azizi_1035
یک شنبه 30 آبان 1389, 15:55 عصر
سلام،
وقتی کاربر Login کرد باید فرم Login بسته شه یعنی حافظه اشغال شده اون پس گرفته بشه. شما باید از کلاس ApplicationContext استفاده کنی. تو این کلاس می شه کاری کرد که اگه فرم اولیه بسته شد فرم دیگه ای نمایش داده شه. نمونه:
http://msdn.microsoft.com/en-us/library/system.windows.forms.applicationcontext.aspx
امیدوارم کمکت کنه. :خجالت: