PDA

View Full Version : سوال در مورد بستن فرم در vb.net



arashkey
دوشنبه 02 خرداد 1384, 07:49 صبح
می خواستم یه برنامه خیلی ساده تو vb.net بنویسم ولی نشد ؟؟؟
به نظر خیلی ساده می یاد ولی هر ساده ای که پارسی کولا نمی شه ؟؟؟ می شه ؟؟؟
برنامه ای بنویسید که با استفاده از متد form_closing وقتی فرم بسته می شود با یک سوال از کاربر در صورتی که کاربر تایید کرد فرم بسته شود .
کد ها تقریبا به شکل زیر می شود :


Private Sub Form1_Closing(ByVal sender As Object, ByVal e As _ System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
Dim ask As Byte
ask = MsgBox("Are you sure ???", MsgBoxStyle.YesNo)
If ask = 6 Then
'????
Else
'?????
End If
End Sub

majid_afra222
دوشنبه 02 خرداد 1384, 16:16 عصر
سلام
event ارسالی e رو مقدار دهی کن : یعنی


Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If MsgBox("Close It???", MsgBoxStyle.Information Or MsgBoxStyle.OKCancel) = MsgBoxResult.OK Then
e.Cancel = False
Else
e.Cancel = True
End If
End Sub
امیدوارم بدردت بخوره

hadi2345
دوشنبه 02 خرداد 1384, 16:42 عصر
با سلام .
هر دو کد یک جواب میدن . یعنی در هر دو حالت اگه فرم رو ببندیم سوالی پرسیده میشه و بعد فرم بسته میشه . ولی اگه یک command بر روی فرم قرار بدیم و دستور end رو توش بنویسیم دیگه از ما سوالی پرسیده نمیشه و مستقیما برنامه بسته خارج میشه .(احتمالا اشکال arashkey هم همینه) .
برای رفع این ایراد باید از یک تابع کمک بگیریم و از طریق اون تابع برنامه رو ببندیم . (البته این راهیه که به ذهن من رسیده و مطمئنا اساتید راههای بهتری ذکر خواهند کرد تا ما هم استفاده ببریم)
موفق باشید .

majid_afra222
دوشنبه 02 خرداد 1384, 23:26 عصر
سلام


با سلام .
هر دو کد یک جواب میدن . یعنی در هر دو حالت اگه فرم رو ببندیم سوالی پرسیده میشه و بعد فرم بسته میشه .

کدی که من نوشته بودم هم همین طور بود ؟؟؟

hadi2345
چهارشنبه 04 خرداد 1384, 10:59 صبح
با سلام .
آره آقا مجید کد شما هم دقیقا همون مشکلو داشت .

majid_afra222
چهارشنبه 04 خرداد 1384, 12:33 عصر
سلام
من کد رو تست کردم٬ سوال پرسیده میشه اگه بستن فرم رو تایید کنه بسته میشه٬ و اگه تایید نکنه فرم بسته نمیشه.

جناب arashkey شما هم تست کردید و همین جواب رو گرفتید؟؟؟ :گیج:

mikhak
چهارشنبه 04 خرداد 1384, 18:18 عصر
البته میتونیم از e.cancel=false استفاده نکنیم یعنی به این صورت


Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
Dim a As Integer
a = MessageBox.Show("Do you want to exit?!", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If a = 7 Then
e.Cancel = True
End If
End Sub

-----------------------
سینا

majid_afra222
چهارشنبه 04 خرداد 1384, 19:19 عصر
ممنون mikhak جان
منظورم من نشان دادن نحوه استفاده از اون بود٬‌ ولی متعجبم چرا جناب hadi2345 گفتن که کد جواب نمیده.

hadi2345
چهارشنبه 04 خرداد 1384, 21:21 عصر
با عرض معذرت از همه دوستان :embr: کد درست بود و من کلا در اشتباه بودم . ..... :oops: