学生档案管理系统


目录
摘要
ABSTRACT
前言
第一章 为什么要开发一个学生档案管理系统?
第二章 计算机已经成为我们学习和工作的得力助手
1.1 在中小学中用计算机管理学生档案的意义
Visual Basic应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和 方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可说扩展性和强有力的功能。
Visual Basic应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。


实现菜单选项
菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Visual Basic也提供了强大的创建菜单功能是程序更加标准。
您可以使用Visual Basic的Application Wizard也可以使用Visual Basic 的菜单编辑器建立菜单或者修改已经存在的菜单。


 实现工具栏
CoolBar控件与Office97种看到的CoolBar是类似的。CoolBar就是一个可以在窗体上浮动的工具,同时也是其他ActiveX的容器。通过在CoolBar中迁入其他空间你局可以向用户提供更好的灵活性和义用性。
Toolbar 是工具条控件,是实现工具条的主体。其中的按钮可以显示图像和标题,并按功能分组或加入分隔符,还可以围棋设置鼠标停留在其上显示的提示字符。Toolbar也是一个控件容器且具有Style属性,并可以为其增加下拉按钮和平滑按钮等。
选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。在“控件”选项卡列表中选择“Microsoft Windows Common Controls 6.0”后工具相中增加改控件。其属性及对象如下:
1. Align属性定义工具条在窗体中的位置
2. ToolTipText属性是字符串类型,定义控件的提示字符
3. Style属性定义按钮外观。
4. ImageList属性定义与数据条对应的ImageList控件名,该控件定义工具条按钮显示的图像。
5. HotImangeList属性设置一个ImageList控件名,该控件定义按钮获得热点时显示的图像。
6. DisabledImageList属性定义工具条按钮无效时显示的图像。
创建工具条包括ImageList和Toolbar控件
ImageList用于为其他控件提供图像库,将ImageList控件加入到工具箱的操作于前述Toolbar控件相同。


 帮助
专业水平的软件通常都带有联机帮助功能。无论写出来的程序是要给大量的用户使用,还是仅仅局限于公司内部有限的使用者,我们都应该为用户提供详细的、易于理解的联机帮助文档。微软的Help Workshop4.0 是一套独立于Visual Basic 的用来协助我们创建、运行于32位Windows 操作系统下的帮助文件的工具。使用它我们可以为我们编写的应用程序生成一组帮助文件。


 关于版本
为了是程序显得更具有专业风格,首先可以在其中加入通常的应用程序信息。这些信息包括公司名称、版本号、修订号以及其他类似信息。Visual Basic允许你使用APP对象来保存这些信息,APP对象是一个预定义对象,不需要在程序中创建它。APP对象的大多数属性被应用程序用来提供常规的信息,通过使用这些APP提供的属性,可以在应用程序和用户之间交流重要信息,在项目属性框中可以设置它的属性。




第四章
使用Access2000 实现关系型数据库


 数据库的概念
数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。


 新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。
1. 标识需要的数据;
2. 收集被标识的字段到表中;
3. 标识主关键字字段;
4. 绘制一个简单的数据图表;
5. 规范数据;
6. 标识指定字段的信息;
7. 创建物理表。


 修改已建的数据库
数据库的修改分为:添加、编辑和删除记录。这三种操作均可由Visual Basic 创建的程序来完成,下面的章节将详细描述实现的具体方法。


 实现数据库之间的联系
数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。
第五章
系统总体规划


 系统功能
1. 可以进行文本操作;
2. 添加一个数据库项目;
3. 删除一个数据库项目;
4. 修改一个数据库项目;
5. 查询信息;
6. 察看课程表。


 流程图


















第六章
系统具体实现


 用户界面的实现
6.1.1 封面
具体实现见 图_6.1.1





图_6.1.1
6.1.2 主界面
 具体实现见.图_6.1.2
图_6.1.2

主界面包含三方面的内容,以下一一介绍:
1.记录操作
打开记录操作,进入记录操作菜单项分别由文件、视图及帮助三个选项。
1.1文件包括:新建
打开
打开写字板---------如图<6.1.4> (源程序见附录清单6.1 )
保存
另存
打印
退出
<图6.1.4>
1.2视图包括:状态条
工具栏
背景颜色
显示
课程表---------如图<6.1.5>
文本编辑器
网络浏览
<图6.1.5>
1. 3帮助包括:内容
关于帮助
2.记录操作
打开记录操作进入记录操作选项页分别由浏览记录、查找等三个选项组成。
2.1浏览记录:
学生学籍库
课程库
成绩库
2.2查找记录
2.3备注
3.系统信息
打开系统信息进入选项页分别由系统信息、信息采集等组成。

6.1.3 帮助系统
具体实现见6.1.3

 图6.1.3

 数据库的实现
6.2.1学籍数据库
学籍数据库里存储了学生的档案包括:学号、姓名、年龄等 表如<6.2.6>

列名(中文)列名(英文)数据类型宽度小数点位数是否为空姓名Name Date8No学号CodeInteger6No性别SexDate2No年龄AgeDate6No民族NationDate6No政治面貌Visage...Date2...Yes...家庭住址AddressDate10No备注RecordDate15No 表<6.2.6>
学籍模块:
该模块主要完成学生基本信息的录入、删除 、更新等功能。在此模块中定义了八个域名来进行学生的信息存储。如果用户修改某一纪录中的某一项,可单添加按钮进行学生记录的编辑,此窗口使用数据窗口的FREEDOM风格(典型的录入界面)。该种风格特点是列标题紧挨着数据列在此窗口还可以增加新学生纪录。

6.2.2成绩数据库
成绩数据库里存储了学生的成绩包括:学号、成绩、等如表<6.2.7 >

列名(中文)列名(英文)数据类型宽度小数点位数是否为空姓名Name Date8No学号CodeInteger6No成绩ScoreDate10No备注RecordDate15No 表<6.2.7>
成绩模块:
该模块主要完成学生成绩的基本信息的录入、删除 、更新等功能。在此模块中定义了四个域名来进行学生的信息存储。

6.2.3课程数据库
课程数据库利存储了课程的信息:课程名、作者、出版社等如表<6.2.8>

列名(中文)列名(英文)数据类型宽度小数点位数是否为空课程IDCourseDate8No课程名NameDate15No出版社PublisherDate20No作者ScoreDate18No备注RecordDate15No 表<6.2.8>
课程模块:
该模块主要完成存储课程的所有信息及录入、删除 、更新等功能


 与VB的连接
Visual Basic提供了与底层数据库系统紧密的连接。Visual Basic 支持不同的关系数据库管理系统并充分发挥每一个数据库的特长。生成独立应用或脱离服务器运行的服务以上的应用,Visual Basic连接数据库的方式有两种:
·通过使用Visual Basic的 DATA控件。
·通过使用由Visual Basic提供的专用的直接与数据库相连的接口
第七章


结束语
经过三个多月的设计和开发,中小学档案管理系统基本开发完毕。其功能基本符合用户需求,能够完成学生学籍的存储和成绩的查询以及各类相关报表的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。,对于数据的一致性的问题也通过程序进行了有效的解决。
但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。

致谢

在本次毕业设计中,我从指导老师雷震甲老师身上学到了很多东西。雷老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。
另外,在系统开发过程中雷老师的助手张彦明老师也给于我很大的帮助,帮助解决了不少的难点,使得系统能及时开发完成,还有同组的同学同样给与我不少帮助,这里一并表示感谢。






第八章


主要参考文献





[1] Visual Basic 6.0 使用指南
作者:Bob Reselman , Richard Peasley , Wayne Pruchniak.
出版社:电子工业出版社
[2] 中文版Microsoft Office 97 自学通
作者:Ned Snell
出版社:机械工业出版社
[3] Visual Basic 6.0 中文版控件大全
作者:Microsoft
出版社;电子工业出版社
[4] 中文Access 2000 24学时教程
作者:Craig Eddy ,Timothy Buchanan
出版社:机械工业出版社









附录程序清单及注释
程序清单6.1
Option Explicit
Dim FileName As String '文件名,用于打开、保存文件
Dim UndoString As String '用于 Undo 操作
Dim UndoNew As String '用于 Undo 操作

Private Sub ImgUndoDisable()
'禁用“Undo”按钮
UndoString = ""
UndoNew = ""
ImgUndo.Enabled = False
ImgUndo.Picture = ImageDisable.ListImages("Undo").Picture
End Sub

Private Sub ImgUndoEnable()
'有效“Undo”按钮
ImgUndo.Enabled = True
ImgUndo.Picture = ImageUp.ListImages("Undo").Picture
End Sub

Private Sub Check_ImgPaste()
'设置粘贴按钮
If Len(Clipboard.GetText) > 0 Then
ImgPaste.Enabled = True
ImgPaste.Picture = ImageUp.ListImages("Paste").Picture
Else
ImgPaste.Enabled = False
ImgPaste.Picture = ImageDisable.ListImages("Paste").Picture
End If
End Sub

Private Sub Check_ImgCutCopy()
'设置剪切、复制按钮
If Text1.SelLength > 0 Then
ImgCut.Enabled = True
ImgCut.Picture = ImageUp.ListImages("Cut").Picture
ImgCopy.Enabled = True
ImgCopy.Picture = ImageUp.ListImages("Copy").Picture
Else
ImgCut.Enabled = False
ImgCut.Picture = ImageDisable.ListImages("Cut").Picture
ImgCopy.Enabled = False
ImgCopy.Picture = ImageDisable.ListImages("Copy").Picture
End If
End Sub
Private Sub BackColor_Click()
CommonDialog1.ShowColor
Text1.BackColor = CommonDialog1.Color
End Sub

Private Sub Box_Click()
'显停工具栏
If Box.Checked Then
'将停显工具栏
Box.Checked = False
CoolBar1.Visible = False
Else
Box.Checked = True
CoolBar1.Visible = True
End If

Form_Resize '重新调整控件位置
End Sub

Private Sub Close_Click()
Dim FileNum As Integer

If Len(FileName) > 0 Then
'有输入文件名
FileNum = FreeFile() '获得可用文件号
Open FileName For Output As FileNum '打开输出文件
'如果无指定文件,则创建新文件
Print #FileNum, Text1.Text '输出文本
Close FileNum '关闭文件
End If

Text1.Text = ""
FileName = ""
End Sub

Private Sub ComboSize_Click()
Text1.FontSize = Val(ComboSize.Text)
End Sub

Private Sub ComboFont_Click()
Text1.FontName = ComboFont.Text
End Sub

Private Sub Copy_Click()
Clipboard.SetText Text1.SelText '复制文本到剪裁板
End Sub

Private Sub Cut_Click()
Clipboard.SetText Text1.SelText '复制文本到剪裁板
Text1.SelText = "" '清选择的文本
End Sub

Private Sub DataTime_Click()
Text1.SelText = Now
End Sub

Private Sub Delete_Click()
Text1.SelText = "" '清选择的文本
End Sub

Private Sub Edit_Click()
'当程序显示“编辑”子菜单前,触发该程序
If Text1.SelLength > 0 Then
'文本框中有选中的文本
Cut.Enabled = True
Copy.Enabled = True
Delete.Enabled = True
Else
Cut.Enabled = False
Copy.Enabled = False
Delete.Enabled = False
End If

If Len(Clipboard.GetText()) > 0 Then
'剪裁板中有文本数据
Paste.Enabled = True
Else
'没有可粘贴的文本
Paste.Enabled = False
End If
End Sub

Private Sub Exit_Click()
Unload Me
End Sub

Private Sub FindText_KeyPress(KeyAscii As Integer)
Dim BeginPos As Long

If KeyAscii = 13 Then
BeginPos = InStr(1, Text1.Text, FindText.Text, vbTextCompare)
If BeginPos > 0 Then
Text1.SelStart = BeginPos - 1
Text1.SelLength = Len(FindText.Text)
End If
End If
End Sub

Private Sub Fontcolor_Click()
CommonDialog1.ShowColor
Text1.ForeColor = CommonDialog1.Color
End Sub

Private Sub Form_Load()
Dim i As Integer

'加载图像
ImgNew.Picture = ImageUp.ListImages("New").Picture
ImgOpen.Picture = ImageUp.ListImages("Open").Picture
ImgSave.Picture = ImageUp.ListImages("Save").Picture
ImgUndo.Picture = ImageDisable.ListImages("Undo").Picture
Check_ImgPaste
Check_ImgCutCopy

'加载系统字体
For i = 0 To Screen.FontCount - 1
ComboFont.AddItem Screen.Fonts(i)
Next i
End Sub

Private Sub Form_Resize()
Dim TextTop As Long

'修改工具条大小
CoolBar1.Top = Me.ScaleTop
Me.ScaleLeft
Text1.Width = Me.ScaleWidth
If Me.ScaleHeight > CoolBar1.Height Then
Text1.Height = Me.ScaleHeight - TextTop
Else
Text1.Height = 0
End If
End Sub

Private Sub ImgCopy_Click()
Copy_Click '复制
Check_ImgPaste
Check_ImgCutCopy
End Sub

Private Sub ImgCopy_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'“按下”按钮
If Button = 1 Then
ImgCopy.Picture = ImageDown.ListImages("Copy").Picture
End If
End Sub

Private Sub ImgCopy_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1 = "将选择的文本复制到剪裁板"

'判断鼠标位置,显示不同图像
If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then
ImgCopy.Picture = ImageDown.ListImages("Copy").Picture
ElseIf Button = 1 Then
ImgCopy.Picture = ImageUp.ListImages("Copy").Picture
End If
End Sub
Private Sub ImgCopy_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
'“抬起”按钮
ImgCopy.Picture = ImageUp.ListImages("Copy").Picture
End If
End Sub

Private Sub ImgCut_Click()
'If Text1.SelLength > 0 Then
Cut_Click '剪切
Check_ImgPaste
Check_ImgCutCopy
'End If
End Sub

Private Sub ImgCut_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
'“按下”按钮
ImgCut.Picture = ImageDown.ListImages("Cut").Picture
End If
End Sub

Private Sub ImgCut_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1 = "剪切选择的文字到剪裁板"

'判断鼠标位置,显示不同图像
If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then
ImgCut.Picture = ImageDown.ListImages("Cut").Picture
ElseIf Button = 1 Then
ImgCut.Picture = ImageUp.ListImages("Cut").Picture
End If
End Sub

Private Sub ImgCut_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
'“抬起”按钮
ImgCut.Picture = ImageUp.ListImages("Cut").Picture
End If
End Sub

Private Sub ImgNew_Click()
New_Click
End Sub

Private Sub ImgNew_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
'“按下”按钮
ImgNew.Picture = ImageDown.ListImages("New").Picture
End If
End Sub

Private Sub ImgNew_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1 = "创建新文件" '修改提示信息

'判断鼠标位置,显示不同图像
If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then
ImgNew.Picture = ImageDown.ListImages("New").Picture
ElseIf Button = 1 Then
ImgNew.Picture = ImageUp.ListImages("New").Picture
End If
End Sub

Private Sub ImgNew_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
'“抬起”按钮
ImgNew.Picture = ImageUp.ListImages("New").Picture
End If
End Sub

Private Sub ImgOpen_Click()
Open_Click
End Sub

Private Sub ImgOpen_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'“按下”按钮
If Button = 1 Then
ImgOpen.Picture = ImageDown.ListImages("Open").Picture
End If
End Sub
Private Sub ImgOpen_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1 = "选择文件名并打开文件"

'判断鼠标位置,显示不同图像
If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then
ImgOpen.Picture = ImageDown.ListImages("Open").Picture
ElseIf Button = 1 Then
ImgOpen.Picture = ImageUp.ListImages("Open").Picture
End If
End Sub

Private Sub ImgOpen_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
'“抬起”按钮
ImgOpen.Picture = ImageUp.ListImages("Open").Picture
End If
End Sub

Private Sub ImgPaste_Click()
Paste_Click '粘贴
End Sub

Private Sub ImgPaste_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
'“按下”按钮
ImgPaste.Picture = ImageDown.ListImages("Paste").Picture
End If
End Sub

Private Sub ImgPaste_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1 = "粘贴文本到当前光标位置"

'判断鼠标位置,显示不同图像
If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then
ImgPaste.Picture = ImageDown.ListImages("Paste").Picture
ElseIf Button = 1 Then
ImgPaste.Picture = ImageUp.ListImages("Paste").Picture
End If
End Sub

Private Sub ImgPaste_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
eName For Output As FileNum '打开输出文件
'如果无指定文件,则创建新文件
Print #FileNum, Text1.Text '输出文本
Close FileNum '关闭文件
ImgUndoDisable
Else
MsgBox "不能保存无名文件" Chr(13) Chr(10) "请选择“文件”菜单的“保存”项", , "警告"
End If
End Sub

Private Sub ImgSave_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
ImgSave.Picture = ImageDown.ListImages("Save").Picture
End If
End Sub

Private Sub ImgSave_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1 = "保存当前文件"

'判断鼠标位置,显示不同图像
If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then
ImgSave.Picture = ImageDown.ListImages("Save").Picture
ElseIf Button = 1 Then
ImgSave.Picture = ImageUp.ListImages("Save").Picture
End If
End Sub

Private Sub ImgSave_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
'“抬起”按钮
ImgSave.Picture = ImageUp.ListImages("Save").Picture
End If
End Sub

Private Sub ImgUndo_Click()
Text1.Text = UndoString
End Sub

Private Sub ImgUndo_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
'“按下”按钮
ImgUndo.Picture = ImageDown.ListImages("Undo").Picture
End If
End Sub

Private Sub ImgUndo_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1 = "取消当前操作"

'判断鼠标位置,显示不同图像
If Button = 1 And (X > 0 And X < ImgNew.Width And Y > 0 And Y < ImgNew.Height) Then
ImgUndo.Picture = ImageDown.ListImages("Undo").Picture
ElseIf Button = 1 Then
ImgUndo.Picture = ImageUp.ListImages("Undo").Picture
End If
End Sub

Private Sub ImgUndo_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
'“抬起”按钮
ImgUndo.Picture = ImageUp.ListImages("Undo").Picture
End If
End Sub
Private Sub New_Click()
FileName = ""
Text1 = ""
ImgUndoDisable
End Sub

Private Sub Open_Click()
Dim FileNum As Integer
Dim buffer As String
Dim buffer1 As String
Dim FileSize As Long
Dim MaxLen As Long

MaxLen = 32768 '文件最大长度

CommonDialog1.ShowOpen '显示"打开文件"对话框

If Len(CommonDialog1.FileName) > 0 Then
'有输入文件名
FileName = CommonDialog1.FileName '保存文件名
FileSize = FileLen(FileName) '获得文件长度
If FileSize > MaxLen Then
'文件超长
MsgBox "该文件过大,只能显示部分文本", , "警告"
Exit Sub
End If

Screen.MousePointer = 11 '设置鼠标为沙漏

FileNum = FreeFile() '获得可用文件号
Open FileName For Input As FileNum '以顺序输入方式打开文件

Do While Not EOF(FileNum) And Len(buffer) < MaxLen '读必须文本小于 32K
Line Input #FileNum, buffer1 '读一行文字
buffer = buffer buffer1 Chr(13) Chr(10) '加入回车换行符
Loop '循环体

Close FileNum '关闭文件

ImgUndoDisable '取消 Undo 功能

Text1.Text = buffer '显示文本
UndoNew = buffer '保存文本
buffer = "" '释放内存
buffer1 = ""
Screen.MousePointer = 0 '恢复鼠标指针
Me.Caption = "记事本 - " FileName '修改标题显示
End If
End Sub

Private Sub Paste_Click()
Text1.SelText = Clipboard.GetText
End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1 = "工具栏"
End Sub

Private Sub Picture1_Resize()
If Picture1.Width > Label1.Left Then
Label1.Width = Picture1.ScaleWidth - Label1.Left
End If
End Sub

Private Sub Save_Click()
Dim FileNum As Integer '文件句柄号

CommonDialog1.ShowSave '显示保存对话框
If Len(CommonDialog1.FileName) > 0 Then
'有输入文件名
FileName = CommonDialog1.FileName '保存文件名
FileNum = FreeFile() '获得可用文件号
Open FileName For Output As FileNum '打开输出文件
'如果无指定文件,则创建新文件
Print #FileNum, Text1.Text '输出文本
Close FileNum '关闭文件
Me.Caption = "记事本 - " FileName '修改标题显示
ImgUndoDisable
End If
End Sub

Private Sub Text1_Change()
If Not ImgUndo.Enabled Then
'使“Undo”按钮可用
ImgUndoEnable
End If
UndoString = UndoNew
UndoNew = Text1
End Sub

Private Sub Text1_Click()
Check_ImgCutCopy
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Check_ImgCutCopy
End sub