level 8
免费提供全部代码,具体代码如下
需要添加TextBox和Text控件
'声明模块级变量
Private sFilename As String '表示文件名
Private sFileContent As String '表示文件内容
Private CancelError As Boolean
'定义自定义函数,用于检查文件内容是否改变并提示用户做出选择
Private Function CheckFile()
Dim Choice As Integer
CheckFile = 0
If Text1.Text <> sFileContent Then
Choice = MsgBox("文件内容已被更改,保存文件么?", vbQuestion + vbYesNoCancel, "记事本")
If Choice = vbYes Then
CheckFile = 1
ElseIf Choice = vbNo Then
CheckFile = 2
Else
CheckFile = 3
End If
End If
End Function
'当加载窗体时执行以下事件过程
Private Sub Form_Load()
sFilename = ""
sFileContent = ""
End Sub
'当首次显示窗体或改变窗体大小时执行以下事件过程
Private Sub Form_Resize()
Text1.Left = 0
Text1.Top = 0
Text1.Height = Me.ScaleHeight
Text1.Width = Me.ScaleWidth
End Sub
'当卸载窗体时执行以下事件过程
Private Sub Form_Unload(Cancel As Integer)
Dim Choice As Integer
Choice = CheckFile()
If Choice = 1 Then
mnuFileSave_Click
Cancel = CancelError
ElseIf Choice = 3 Then
Cancel = 1
End If
End Sub
'当在菜单栏单击“编辑”菜单时执行以下事件过程
Private Sub mnuEdit_Click()
mnuEditCut.Enabled = (Text1.SelLength > 0)
mnuEditCopy.Enabled = (Text1.SelLength > 0)
mnuEditPaste.Enabled = (Clipboard.GetText <> "")
End Sub
'当从“编辑”菜单中选择“复制”命令时执行以下事件过程
Private Sub mnuEditCopy_Click()
Clipboard.Clear
Clipboard.SetText Text1.SelText
End Sub
'当从“编辑”菜单中选择“剪切”命令时执行以下事件过程
Private Sub mnuEditCut_Click()
Clipboard.Clear
Clipboard.SetText Text1.SelText
Text1.SelText = ""
End Sub
'当从“编辑”菜单中选择“日期/时间”命令时执行以下事件过程
Private Sub mnuEditDateTime_Click()
Text1.Text = Now
End Sub
'当从“编辑”菜单中选择“粘贴”命令时执行以下事件过程
Private Sub mnuEditPaste_Click()
Text1.SelText = Clipboard.GetText
End Sub
'当从“编辑”菜单中选择“全选”命令时执行以下事件过程
Private Sub mnuEditSelectAll_Click()
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
'当从“文件”菜单中选择“退出”命令时执行以下事件过程
Private Sub mnuFileExit_Click()
Unload Me
End Sub
'当从“文件”菜单中选择“新建”命令时执行以下事件过程
Private Sub mnuFileNew_Click()
Dim Choice As Integer
Choice = CheckFile()
If Choice = 1 Then
mnuFileSave_Click
ElseIf Choice > 1 Then
Exit Sub
End If
Text1.Text = ""
Me.Caption = "文档-记事本"
sFilename = ""
sFileContent = ""
End Sub
'当从“文件”菜单中选择“打开”命令时执行以下事件过程
Private Sub mnuFileOpen_Click()
On Error GoTo ErrorHandler
Dim Choice As Integer
Choice = CheckFile()
If Choice = 1 Then
mnuFileSave_Click
ElseIf Choice = 3 Then
Exit Sub
End If
dlg.DialogTitle = "打开"
dlg.FileName = ""
dlg.ShowOpen
If dlg.FileName <> "" Then sFilename = dlg.FileName
Me.Caption = dlg.FileTitle & "-记事本"
Open sFilename For Input As 1
Text1.Text = StrConv(InputB(LOF(1), 1), vbUnicode)
sFileContent = Text1.Text
Close #1
ErrorHandler:
If Err.Number = 32755 Then
Exit Sub
End If
End Sub
'当从“文件”菜单中选择“保存”命令时执行以下事件过程
Private Sub mnuFileSave_Click()
If sFilename = "" Then
mnuFileSaveAs_Click
Else
Open sFilename For Output As 1
Print #1, Text1.Text
sFileContent = Text1.Text
End If
End Sub
'当从“文件”菜单中选择“另存为”命令时执行以下事件过程
Private Sub mnuFileSaveAs_Click()
On Error GoTo ErrorHandle
dlg.DialogTitle = "另存为"
dlg.ShowSave
If dlg.FileName <> "" Then sFilename = dlg.FileName
Me.Caption = dlg.FileTitle & "-记事本"
mnuFileSave_Click
Exit Sub
ErrorHandle:
If Err.Number = 32755 Then
Exit Sub
End If
End Sub
'当从“格式”菜单中选择“字体”命令时执行以下事件过程
Private Sub mnuFormatFont_Click()
On Error GoTo ErrorHandle
dlg.DialogTitle = "字体"
dlg.FontBold = Text1.FontBold
dlg.FontItalic = Text1.FontItalic
dlg.FontName = Text1.FontName
dlg.FontSize = Text1.FontSize
dlg.FontStrikethru = Text1.FontStrikethru
dlg.FontUnderline = Text1.FontUnderline
dlg.Flags = cdlCFBoth Or cdlCFEffects
dlg.ShowFont
Text1.FontBold = dlg.FontBold
Text1.FontItalic = dlg.FontItalic
Text1.FontName = dlg.FontName
Text1.FontSize = dlg.FontSize
Text1.FontStrikethru = dlg.FontStrikethru
Text1.FontUnderline = dlg.FontUnderline
Text1.ForeColor = dlg.Color
ErrorHandle:
End Sub
2023年11月03日 03点11分
9