百思不得其解 这是怎么回事? 我没让他关他怎么就关了呢?
代码如下
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click '退出 '检查有无更改 If DS.HasChanges Then Select Case MessageBox.Show("您已对商品大类进行了更改,在退出前是否保存相关的修改?", "是否保存", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) Case Windows.Forms.DialogResult.Yes Save() Me.Close() Case Windows.Forms.DialogResult.No DS.Tables("商品大类").RejectChanges() '撤消变更 Me.Close() Case Windows.Forms.DialogResult.Cancel MessageBox.Show("点了取消") End Select End If End Sub
e.Cancel =False
[解决办法]
在Xaml Designer中,选中Button,在Property中设置
将IsCancel去掉
[解决办法]
IsCancel是Button的属性,not e
[解决办法]
刚才估计写错了
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click '退出 '检查有无更改 If DS.HasChanges Then Select Case MessageBox.Show("您已对商品大类进行了更改,在退出前是否保存相关的修改?", "是否保存", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) Case Windows.Forms.DialogResult.Yes Save() Me.Close() Case Windows.Forms.DialogResult.No DS.Tables("商品大类").RejectChanges() '撤消变更 Me.Close() Case Windows.Forms.DialogResult.Cancel [b]e.Cancel = True[/b] MessageBox.Show("点了取消") End Select End If End Sub
[解决办法]
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing '退出 '检查有无更改 If DS.HasChanges Then Select Case MessageBox.Show("您已对商品大类进行了更改,在退出前是否保存相关的修改?", "是否保存", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) Case Windows.Forms.DialogResult.Yes Save() e.Cancel = False Case Windows.Forms.DialogResult.No DS.Tables("商品大类").RejectChanges() '撤消变更 e.Cancel = False Case Windows.Forms.DialogResult.Cancel e.Cancel = True MessageBox.Show("点了取消") End Select End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub
[解决办法]
如下测试,未见异常。
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
Select Case MessageBox.Show("您已对商品大类进行了更改,在退出前是否保存相关的修改?", "是否保存", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
Case Windows.Forms.DialogResult.Yes
Me.Close()
Case Windows.Forms.DialogResult.No
Me.Close()
Case Windows.Forms.DialogResult.Cancel
MessageBox.Show("点了取消")
End Select
End Sub
[解决办法]
你注释掉If 这个判断语句试试
'If DS.HasChanges Then Select Case MessageBox.Show("您已对商品大类进行了更改,在退出前是否保存相关的修改?", "是否保存", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) Case Windows.Forms.DialogResult.Yes Save() Me.Close() Case Windows.Forms.DialogResult.No DS.Tables("商品大类").RejectChanges() '撤消变更 Me.Close() Case Windows.Forms.DialogResult.Cancel MessageBox.Show("点了取消") End Select 'End If
[解决办法]
1,你判断出了问题,haschanges为false了,你断点进去看下。
2,你窗体哪里属性设置不对,我测试了下,你贴的代码是正确的。
[解决办法]
你这种情况,本来就应该写在Form的Closing事件里,同时用e.Handled=True来禁止窗口关闭。
在btnCancel的点击事件里,只需要写一句:Me.Close就好了。