-
به به!
سلام جناب MrJamshidy !
نمیای نمیای وقتی هم میای دیگه...
خوبی شما؟
بنده عرض کردم که این مسئله حل شده -- هیچ ابهام و مشکلی هم وجود نداره!
با این حال نمیدونم چرا شما اسرار دارین سراغ تاپیک های حل شده برید!!!
کد من مشکل داشت قبول دارم ولی نه اینی که شما گفتید!
درباره خط اول عرض کنم که اگر دقت کنید vbYes یک ثابت است حاوی مقدار 6 -- و براش فرقی نداره که چیزی که باهاش مقایسه میشه از نوع String یا Integer یا Variant یا VbMsgBoxResult و یا ... باشه.
مهم اینه که مقایسه میشه و مشکلی هم نداره. -- فکر کنم این مورد رو با زبانهای دیگه (مثل ++C) اشتباه گرفتین!
پس همون Dim Msg As String درسته (ولی از لحاظ منطقی VbMsgBoxResult درسته).
اگه میخواید بگید که کد باید منطقی باشه باید یه نگاهی بندازید ببینید کد خودتون منطقی هست!! -- استفاده از End برای پایان دادن برنامه چیز جالب و درستی نیست! -- باید از Unload Me یا مثلا Unload Form1 استفاده کنید.
دلیل:
کد:
http://www.a1vbcode.com/vbtip-148.asp
نکته دیگر استفاده از Form1.Show (واقعا تعجب میکنم -- مگه شما VB رو سیستم تون نصب نیست) -- اگه حتی یک بار کد رو امتحان میکردید مشاهده میکردید که هیچ احتیاجی به Form1.Show دیده نمیشه (شایدم سیستم من بهش احتیاج نداره :دی)
بازهم مشکل عجیب و عدیده ای (:دی) که تو کدتون دیده میشه استفاده از شرط در صورت vbNo برای پایان برنامه!!!
فکر کنم خیلی علاقه دارید که از کد ایراد بگیرید ایراد از این بنی اسرائیلی تر (:دی) ندیده بودم!!
یعنی واقعا وقتی کاربر رو Close (یا همون X) کلیک میکنه و از کاربر پرسیده میشه " آیا مطمئن هستید " کاربر باید برای خروج رو کلید No کلیک کنه!!!!!!!!!!!!!!!!!!!!!!!! (یعنی اگه بگه نمیخوام خارج شم - خارج شه!!)
بیشتر از این نمیخوام دیگه این طومار (:دی) رو ادامه بدم -- به همین منظور اعلام میکنم که اگر میخواستید اشتباهات کد من رو بنویسید باید مثل کد زیر مینوشتید (ظاهرا قصدتون چیزه دیگه بود! نمیدونم)
کد:
Dim Msg As VbMsgBoxResult
Msg = MsgBox("Are You Sure", vbQuestion + vbYesNo + vbDefaultButton1) 'exit message
If Msg = vbNo Then
Cancel = 1
End If
دقت کنید که در اینجا همون شرط اول کفایت میکنه و نیازی به Else نیست -- و همینطور اینجا برای کنسل کردن خروج vbNo شرط میشه -- نه برای تایید خروج!
به همین سادگی!
در کل شما استاد مایی -- معذرت میخوام اگر لحنم تند بود.
خوب کد من هم که یه ذره غیر منطقی بود تصحیحش کردم. بازهم از دوستان خوبم به خاطر این موضوع معذرت میخوام!
در ضمن جناب redfild هم درست میفرماین -> درسته همینجوری هم کار میکنه ولی برای اینکه منطقی تر باشه بهتره توی Form_QueryUnload قرار بگیره.
ممنون و متشکر!
موفق باشین! :11:
-
یه نکته کوچیک دوستان ، سعی بشه برای اینطور فرمانها کدهای ظرطی و کلا کد مربوطه تو رویداد Form_QueryUnload قرار بدید .
می دونم این تاپیک حل شده ، فقط بابت اطلاع برای دوستانی که بعدا سرچ می کنند گفتم . ممنونم