高手们帮小弟我看看一下代码哪里有有关问题
高手们帮我看看一下代码哪里有问题
我用富文本框写了一个高级记事本,现在需要在每次编辑完成关闭该记事本时,都会跳出个对话框询问是否保存当前更改。当然,我已经设置默认保存格式为.txt了。
下面用的这段代码哪里有问题?(txtEdit是文本框名)
Private Sub Form_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If txtEdit.Modified = True Then
sfdMain.ShowDialog()
txtEdit.SaveFile(sfdMain.FileName)
End If
End Sub
------解决方案--------------------
Option Explicit
Dim bModified As Boolean
Dim strFilePath As String
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If bModified = True Then
Dim bMsgReturn As VbMsgBoxResult
bMsgReturn = MsgBox( "文本已改变,是否保存? ", vbYesNoCancel + vbQuestion)
Select Case bMsgReturn
Case VbMsgBoxResult.vbYes
If SaveFile() = True Then
Cancel = 0
Else
'如果保存不成功,还是不退出为妙
Cancel = 1
End If
Case VbMsgBoxResult.vbNo
'如果不保存,直接退出
Cancel = 0
Case VbMsgBoxResult.vbCancel
Cancel = 1
End Select
End If
End Sub
Private Sub txtEdit_Change()
'这里的代码用于判断文本框的值是否改变
bModified = True
End Sub
Private Function SaveFile() As Boolean
'这里的代码用于保存文件,如果保存成功,返回True,自己去调用CommonDialog去
If strFilePath = " " Then
'调用commondialog.showsave得到strfilepath
End If
'将文件保存至strFilePath路径下
'##############代码略###############
'如果保存已完成,将是否修改的标识复位于
bModified = False
SaveFile = True
End Function
我用富文本框写了一个高级记事本,现在需要在每次编辑完成关闭该记事本时,都会跳出个对话框询问是否保存当前更改。当然,我已经设置默认保存格式为.txt了。
下面用的这段代码哪里有问题?(txtEdit是文本框名)
Private Sub Form_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If txtEdit.Modified = True Then
sfdMain.ShowDialog()
txtEdit.SaveFile(sfdMain.FileName)
End If
End Sub
------解决方案--------------------
Option Explicit
Dim bModified As Boolean
Dim strFilePath As String
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If bModified = True Then
Dim bMsgReturn As VbMsgBoxResult
bMsgReturn = MsgBox( "文本已改变,是否保存? ", vbYesNoCancel + vbQuestion)
Select Case bMsgReturn
Case VbMsgBoxResult.vbYes
If SaveFile() = True Then
Cancel = 0
Else
'如果保存不成功,还是不退出为妙
Cancel = 1
End If
Case VbMsgBoxResult.vbNo
'如果不保存,直接退出
Cancel = 0
Case VbMsgBoxResult.vbCancel
Cancel = 1
End Select
End If
End Sub
Private Sub txtEdit_Change()
'这里的代码用于判断文本框的值是否改变
bModified = True
End Sub
Private Function SaveFile() As Boolean
'这里的代码用于保存文件,如果保存成功,返回True,自己去调用CommonDialog去
If strFilePath = " " Then
'调用commondialog.showsave得到strfilepath
End If
'将文件保存至strFilePath路径下
'##############代码略###############
'如果保存已完成,将是否修改的标识复位于
bModified = False
SaveFile = True
End Function