PDA

View Full Version : دو سوال درباره بستن فرم



water_lily_2012
جمعه 12 آذر 1389, 17:06 عصر
سلام
یه فرم اصلی دارم و یک فرم لوگین.
فرم لوگین در رویداد Form_Load فرم اصلی به صورت دایالوگ باز می شه. می خوام که اگر کاربر برنامه و فرم لوگین را به هر روشی بست فرم اصلی نیز بسته بشه و نمایش داده نشه. اصلا نمایش داده نشه حتی در هنگام بستن.

حامد فراست
جمعه 12 آذر 1389, 18:38 عصر
با سلام
به نظر من یک راهش اینکه از Application.Exit() استفاده کنی

ایمان مدائنی
جمعه 12 آذر 1389, 19:25 عصر
كاري نداره
فرم اصلي برنامه رو بكن همون فرم لوگين
اگه بسته بشه برنامه هم بسته ميشه چون فرم مادر هست
به همين راحتي
بعد از لوگين كردن هم ميتوني اونو hide كني

water_lily_2012
جمعه 12 آذر 1389, 20:27 عصر
از Application.Exit استفاده کردم ولی در آخرین لحظه فرم اصلی را نشون می دهد و بعد می بندد.
و اینکه فرم لوگین را فرم اصلی قرار دهم آیا انجام این کار درست است؟ یعنی راه دیگری نداره.

water_lily_2012
جمعه 12 آذر 1389, 21:42 عصر
آخرش نفهمیدم که اولین فرمی که باید اجرا بشه فرم لوگین هست یا باید فرم اصلی برنامه اجرا شده و از آن فرم فرم لوگین را اجرا کنیم.

Topcoding
جمعه 12 آذر 1389, 21:59 عصر
سلام دوست عزیز
اول در قسمت program.cs فرم login را به عنوان اولین فرم اجرایی قرار می دهید


Application.Run(new Form_Login());

حالا در لود فرم login بعد از اینکه کاربر تعیید شدو فرم login را hide می کنی و form اصلی را لود می کنی


Form_Login.ActiveForm.Hide();
Form f6 = new Form_asli(flag );
f6.Show( );

حالا هرجا قرار شد فرم اصلی بسته بشود و بخصوص در رویداد FormClosed (همان ضربدر قرمز می باشد)باید دستور زیر را بنویسید


Application.Exit()

hossin.esm
جمعه 12 آذر 1389, 22:35 عصر
این لینک را ببین . یک مثال گذاشتم
http://barnamenevis.org/showthread.php?262325

haddad
شنبه 13 آذر 1389, 02:55 صبح
فرم اصلی رو در Program.cs بزار به عنوان فرم نمایش اولیه
در Form_Load فرم اصلی فرم لاگین رو فراخونی کن: (در این حالت تا موقع ای که کار فرم لاگین تموم نشه، فرم اصلی نمایش داده نمیشه)

if(frmLogn.ShowDialog() != DialogResult.OK)
{
Application.Exit();
}
این جوری اگر کاربر نخواد لاگین بشه (یعنی دکمه کنسل یا Close رو بزنه) برنامه بدون اینکه فرم اصلی رو نشون بده بسته میشه

water_lily_2012
شنبه 13 آذر 1389, 18:44 عصر
سلام دوست عزیز
اول در قسمت program.cs فرم login را به عنوان اولین فرم اجرایی قرار می دهید


Application.Run(new Form_Login());

حالا در لود فرم login بعد از اینکه کاربر تعیید شدو فرم login را hide می کنی و form اصلی را لود می کنی


Form_Login.ActiveForm.Hide();
Form f6 = new Form_asli(flag );
f6.Show( );

حالا هرجا قرار شد فرم اصلی بسته بشود و بخصوص در رویداد FormClosed (همان ضربدر قرمز می باشد)باید دستور زیر را بنویسید


Application.Exit()




یعنی فرم Login تا آخر برنامه باز باشه؟

water_lily_2012
شنبه 13 آذر 1389, 18:46 عصر
فرم اصلی رو در Program.cs بزار به عنوان فرم نمایش اولیه
در Form_Load فرم اصلی فرم لاگین رو فراخونی کن: (در این حالت تا موقع ای که کار فرم لاگین تموم نشه، فرم اصلی نمایش داده نمیشه)

if(frmLogn.ShowDialog() != DialogResult.OK)
{
Application.Exit();
}
این جوری اگر کاربر نخواد لاگین بشه (یعنی دکمه کنسل یا Close رو بزنه) برنامه بدون اینکه فرم اصلی رو نشون بده بسته میشه

خوب دوست عزیز از این روش استفاده کردم. اگر کاربر منصرف شد و پنجره Login را با این دستور بست یعنی کل برنامه را بست. این پیغام را میده. این را چه کار کنم.
http://tir-k-hadis.isfschools.net/Portals/0/message.jpg
تشکر از تمامی دوستان. با همون روش Hide کردن فرم پیش میرم. انشاالله که مشکلی پیش نیاد.

Topcoding
شنبه 13 آذر 1389, 19:38 عصر
یعنی فرم Login تا آخر برنامه باز باشه؟
آره فرم login تا آخر باز و از دید کاربران مخفی می ماند.و هر جای برنامه که خواستی با زدن یک دکمه کل برنامه ات بسته بشود از همان دستور Application.exit استفاده کن
امید وارم که موفق باشی