PDA

View Full Version : کار نکردن دکمه ی Cancel در Form Closing



Sosha1996
پنج شنبه 03 دی 1394, 15:56 عصر
وقت شما دوستان عزیز بخیر.

من یک برنامه Notepad ساختم و تقریبا آخراشه.

اما یه مشکل برام پیش اومده، اونم اینه که با وجودی که برای Cancel Button تعریف کردم که فقط کنسل کنه یعنی e.cancel = true بازم برنامه بسه میشه.

2تا کد مختلف نوشتم، اما در جفتش این مشکل رو دارم.

این دو تا کدی رو که نوشتم میزارم، اگه میشه لطفا راهنماییم کنید.

تشکر!


نمونه اول:

If RichTextBox1.Modified = True Then
Dim saveChanges As MsgBoxResult = MsgBox("Do you want to save the changes to " & DocumentName & "?", MsgBoxStyle.YesNoCancel, "Notepad")
If saveChanges = MsgBoxResult.No Then
ElseIf saveChanges = MsgBoxResult.Cancel Then
e.Cancel = True
ElseIf saveChanges = MsgBoxResult.Yes Then
Notepad.Editing.Save(RichTextBox1)
End If
Else
End If
Notepad.Editing.SaveUserSettings()
End


نمونه دوم:


If RichTextBox1.Modified = False Then
Application.Exit()
Else
Dim r As MsgBoxResult = MessageBox.Show("Do you want save changes?", "Save Change", MessageBoxButtons.YesNoCancel)
If r = MsgBoxResult.Yes Then
SaveAsToolStripMenuItem_Click(sender, e)
ElseIf r = MsgBoxResult.Cancel Then
e.cancel = true
Else
Application.Exit()
End If
End If

Sosha1996
شنبه 05 دی 1394, 16:14 عصر
خوب متاسفانه یا خوش بختانه کسی کلا نه فقط اینجا بلکه در جا های دیگه نتونست کمکی کنه.
پس مجبور شدم خودم پیداش کنم.

مشکل رو میگم شاید بقیه دوستانی هم که مثل من این مشکل براشون پیش اومد بدونن دیگه چجوری حلش کنن.

کد نمونه دومی که اصلا برای این بدرد نمی خوره.

کد نمونه اولی درست بود، فقط کافی بود 2خط پایین کد رو پاک کنم تا درست یشه.

یعنی اینجوری:
If RichTextBox1.Modified = True Then
Dim saveChanges As MsgBoxResult = MsgBox("Do you want to save the changes to " & DocumentName & "?", MsgBoxStyle.YesNoCancel, "Notepad")
If saveChanges = MsgBoxResult.No Then
ElseIf saveChanges = MsgBoxResult.Cancel Then
e.Cancel = True
ElseIf saveChanges = MsgBoxResult.Yes Then
Notepad.Editing.Save(RichTextBox1)
End If
Else
End If



در کل، کد های زیادی بودن که این مشکل رو حل می کردن. اما من کدی لازم داشتم که برای 3دکمه ی cancel no و yes باشه.

مشکل با همون e.cancel = true حل میشه.