读书人

高手们帮小弟我看看一下代码哪里有有关

发布时间: 2012-03-14 12:01:12 作者: rapoo

高手们帮我看看一下代码哪里有问题


我用富文本框写了一个高级记事本,现在需要在每次编辑完成关闭该记事本时,都会跳出个对话框询问是否保存当前更改。当然,我已经设置默认保存格式为.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

读书人网 >VB

热点推荐