PDA

View Full Version : سوال: کار با فرم لاگین



msadgd
سه شنبه 28 اردیبهشت 1389, 12:34 عصر
سلام دوستان. من یک فرم چک کردن یوزر و pass ساختم که موقع لود شدن برنامه اجرا میشه و اطلاعات رو میگیره اگر درست بود فرم اصلی رو نمایش میده. برای لود فرم اصلی (به شرط صحت اطلاعات) نوشتم :


Dim frm As New Main
frm.Show()
Me.Hide()

حالا وقتی کاربر می خواد از برنامه خارج بشه، باید چه کدی برای خروج نوشته بشه که برنامه به طور کامل بسته بشه؟
(چون ما فرم لاگین رو hide کردیم، فرم اصلی فقط بسته میشه و فرم لاگین ما هنوز بسته نشده و hide هست.)

ممنون میشم راهنمایی کنید
سلامت و پیروز باشید

spring69
سه شنبه 28 اردیبهشت 1389, 16:04 عصر
سلام.

Application.Exit()

Reza1607
سه شنبه 28 اردیبهشت 1389, 16:06 عصر
شما باید اون فرمی رو که به عنوان فرم اصلی انتخاب کردین ببندید.(منظور همون فرمی هست که در زمان اجرا به عنوان اولین فرم بالا می یاد)

msadgd
سه شنبه 28 اردیبهشت 1389, 16:50 عصر
شما باید اون فرمی رو که به عنوان فرم اصلی انتخاب کردین ببندید.(منظور همون فرمی هست که در زمان اجرا به عنوان اولین فرم بالا می یاد)

چجوری باید این کار رو انجام داد؟

Open-Source
سه شنبه 28 اردیبهشت 1389, 17:30 عصر
بهترین را استفاده از دو نمونه کد زیر میباشد:


Process.GetCurrentProcess.Kill()'این نمونه توصیه میشه
یا
Environment.Exit(0)



Application.Exit قدرت کافی برای پایان کل برنامه رو نداره.

msadgd
چهارشنبه 29 اردیبهشت 1389, 08:10 صبح
بهترین را استفاده از دو نمونه کد زیر میباشد:


Process.GetCurrentProcess.Kill()'این نمونه توصیه میشه
یا
Environment.Exit(0)



Application.Exit قدرت کافی برای پایان کل برنامه رو نداره.

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

armin8651
چهارشنبه 29 اردیبهشت 1389, 08:29 صبح
تو هر فرمی هر جا بنویسی End برنامه کامل بسته میشه!

Open-Source
چهارشنبه 29 اردیبهشت 1389, 10:33 صبح
Application.Exit رو گفتم ضعیف هستش به چند دلیل:
این دستور اگه برنامه فقط یک Thread داشته باشه بخوبی کار میکنه ولی اگه بیشتر شد، به مشکل بر میخوره.
اگه توی برنامه ات با پورت های شبکه کار کنی که هنوز باز باشند و بخوای با این دستور برنامه رو ببندی، باز هم به مشکل بر میخوری.
و...

در مورد اون دو دستور بالا:
این دوتا دستور به زور برنامه رو میبندند؛ حالا هر تعداد Thread داشته باشید.

البته این موضوع از روی تجربه خودم بود.(حالا یه عده نیان گیر بدن که...)

spring69
چهارشنبه 29 اردیبهشت 1389, 15:08 عصر
Application.Exit رو گفتم ضعیف هستش به چند دلیل:
این دستور اگه برنامه فقط یک Thread داشته باشه بخوبی کار میکنه ولی اگه بیشتر شد، به مشکل بر میخوره.
اگه توی برنامه ات با پورت های شبکه کار کنی که هنوز باز باشند و بخوای با این دستور برنامه رو ببندی، باز هم به مشکل بر میخوری.
و...

در مورد اون دو دستور بالا:
این دوتا دستور به زور برنامه رو میبندند؛ حالا هر تعداد Thread داشته باشید.

البته این موضوع از روی تجربه خودم بود.(حالا یه عده نیان گیر بدن که...)

سلام دوست عزیز.
ببخشید که سوالم رو اینجا میپرسم آخه فکر کردم شاید برای یک پست جدا زدن مناسب نیست.
من تو برنامم بعد از اینکه کاربر دیتابیس رو Restore کرد از دستور Application.Restart استفاده میکنم که برنامه دوباره اجر بشه، آیا این دستور هم قدرت کافی رو نداره. (من تو برنامم از ترید و یا پورت های شبکه استفاده نمیکنم)
با تشکر

Open-Source
چهارشنبه 29 اردیبهشت 1389, 17:29 عصر
سلام دوست عزیز.
ببخشید که سوالم رو اینجا میپرسم آخه فکر کردم شاید برای یک پست جدا زدن مناسب نیست.
من تو برنامم بعد از اینکه کاربر دیتابیس رو Restore کرد از دستور Application.Restart استفاده میکنم که برنامه دوباره اجر بشه، آیا این دستور هم قدرت کافی رو نداره. (من تو برنامم از ترید و یا پورت های شبکه استفاده نمیکنم)
با تشکر

دوست عزیز ، من منظورم از قدرت کافی این بود که بعضی از برنامه های خاص (که دو نمونه در بالا گفتم) بوسیله اون دستور قابل اتمام نیستند.
حالا هر دستوری که توش از Application استفاده شده باشه که مشکل نداره.
شما خودت ببین آیا کارت رو راه میاندازه؟؛ اگه راه انداخت پس مشکلی نداره.

راستی چرا بعد از Restor کردن بانکت برنامه ات رو ریست میکنی؟!!!!! (به نظر کار منطقی نیست)؛ اگه یه برنامه با حجم بالا داشته باشی روش خوبی نیست.

spring69
چهارشنبه 29 اردیبهشت 1389, 17:35 عصر
خيلي ممنون از پاسخ سريعتون
يعني هيچ نيازي نيست كه من اين كار رو كنم و بعد از بازيابي، بزارم برنامه روند عادي رو طي كنه؟ (حجم اطلاعات برنامم خيلي زياده)