模拟Windows中的记事本程序设计一个”记事本”应用程序 20
设计目的:1.将学到的VB知识点贯穿起来进行综合性练习,以达到对所学知识熟练掌握、灵活应用的目的。2.进一步熟悉VB中通用对话框、组合框和复选框等控件的使用。3.进一步熟...
设计目的:
1. 将学到的VB知识点贯穿起来进行综合性练习,以达到对所学知识熟练掌握、灵活应用的目的。
2. 进一步熟悉VB中通用对话框、组合框和复选框等控件的使用。
3. 进一步熟悉菜单的设计。
4. 了解VB中剪贴板功能的使用。
具体设计要求:
本程序有两个窗体,一个是主窗体,如图1所示;另一个是查找窗体,如图2所示。
图1
图2
实现功能:
1.文件操作:包括文件的新建、打开、保存及退出。
通过主窗体文件菜单中的新建、打开、保存及退出菜单项实现上述功能。注意执行操作前,应检查当前文本框中内容是否已经保存,若还没有保存,弹出消息提示存盘。
2.编辑功能:包括剪切、复制、粘贴、删除、全选、插入时间和日期、工具栏的选择、自动换行。
上述功能通过主窗体编辑菜单中的剪切、复制、粘贴、删除、全选、插入时间和日期、工具栏、自动换行等菜单项来实现。其中,剪切、复制、粘贴、删除等操作是利用剪贴板对象来完成的,注意没有选中文本时,剪切和复制命令不可用;同样若剪贴板中没有内容时,粘贴命令也应不可用。工具栏菜单项是一个复选菜单,选中时字体设置工具栏出现在窗体上,未选中时工具栏隐藏起来。插入时间和日期菜单项是将系统的时间和日期插入到光标所在的位置。选中自动换行菜单项将使文本框具有自动换行功能。
3.字体设置:包含字体、字体颜色及大小的设置
主窗体字体菜单中包含字体、字体颜色及字体大小菜单项。要求字体大小的选择使用菜单数组,可供选择的字号有9、12、16、20四种,如图3。
图3
另外,与Windows的"记事本"不同,要求主窗体上增加一个工具栏,如图1所示,以方便字体、字号的选择以及粗体、斜体、下划线的设置。
4.查找替换功能
主窗体查找菜单中包含查找、替换菜单项。单击该菜单项弹出查找/替换对话框(如图2)完成查找替换功能。注意:查找时,窗体中部分控件可以隐藏起来,只显示与查找有关的控件;而执行替换操作时,再让它们显示出来。
程序及时进行存储备份,以免机器故障或其他同学的误操作而丢失程序。
设计结束,按要求及时上交源程序和设计报告。
设计报告包含以下内容:
1、 功能介绍,任务分解。
2、 窗体界面设计
3、 对象属性设置
4、 各功能模块的主要设计思路和实现方法(附:程序代码)
5、 设计心得体会。
扩展思考:编辑功能中添加"撤消"功能应如何完成? 展开
1. 将学到的VB知识点贯穿起来进行综合性练习,以达到对所学知识熟练掌握、灵活应用的目的。
2. 进一步熟悉VB中通用对话框、组合框和复选框等控件的使用。
3. 进一步熟悉菜单的设计。
4. 了解VB中剪贴板功能的使用。
具体设计要求:
本程序有两个窗体,一个是主窗体,如图1所示;另一个是查找窗体,如图2所示。
图1
图2
实现功能:
1.文件操作:包括文件的新建、打开、保存及退出。
通过主窗体文件菜单中的新建、打开、保存及退出菜单项实现上述功能。注意执行操作前,应检查当前文本框中内容是否已经保存,若还没有保存,弹出消息提示存盘。
2.编辑功能:包括剪切、复制、粘贴、删除、全选、插入时间和日期、工具栏的选择、自动换行。
上述功能通过主窗体编辑菜单中的剪切、复制、粘贴、删除、全选、插入时间和日期、工具栏、自动换行等菜单项来实现。其中,剪切、复制、粘贴、删除等操作是利用剪贴板对象来完成的,注意没有选中文本时,剪切和复制命令不可用;同样若剪贴板中没有内容时,粘贴命令也应不可用。工具栏菜单项是一个复选菜单,选中时字体设置工具栏出现在窗体上,未选中时工具栏隐藏起来。插入时间和日期菜单项是将系统的时间和日期插入到光标所在的位置。选中自动换行菜单项将使文本框具有自动换行功能。
3.字体设置:包含字体、字体颜色及大小的设置
主窗体字体菜单中包含字体、字体颜色及字体大小菜单项。要求字体大小的选择使用菜单数组,可供选择的字号有9、12、16、20四种,如图3。
图3
另外,与Windows的"记事本"不同,要求主窗体上增加一个工具栏,如图1所示,以方便字体、字号的选择以及粗体、斜体、下划线的设置。
4.查找替换功能
主窗体查找菜单中包含查找、替换菜单项。单击该菜单项弹出查找/替换对话框(如图2)完成查找替换功能。注意:查找时,窗体中部分控件可以隐藏起来,只显示与查找有关的控件;而执行替换操作时,再让它们显示出来。
程序及时进行存储备份,以免机器故障或其他同学的误操作而丢失程序。
设计结束,按要求及时上交源程序和设计报告。
设计报告包含以下内容:
1、 功能介绍,任务分解。
2、 窗体界面设计
3、 对象属性设置
4、 各功能模块的主要设计思路和实现方法(附:程序代码)
5、 设计心得体会。
扩展思考:编辑功能中添加"撤消"功能应如何完成? 展开
1个回答
展开全部
Private Sub Form_Load() '设置程序大小
Form1.Height = 7700
Form1.Width = 11000
End Sub
Private Sub Form_Resize() '设置richtextbox属性 窗体大小改变会触发的事件
On Error Resume Next '如果出现错误,忽略错误,继续执行
RichTextBox1.Top = 900
RichTextBox1.Left = 20
RichTextBox1.Height = ScaleHeight - 40
RichTextBox1.Width = ScaleWidth - 40
End Sub
Private Sub MenuNew_Click() '新建
RichTextBox1.Text = "" '清空文本框
FileName = "未命名" '通过对话框获取的文件名为未命名
Form1.Caption = FileName
End Sub
Private Sub MenuOpen_Click() '打开
CommonDialog1.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*" '文件格式
CommonDialog1.ShowOpen '显示打开文件对话框
RichTextBox1.Text = "" '清空文本框
FileName = CommonDialog1.FileName '定义文件名
RichTextBox1.LoadFile FileName
Form1.Caption = "记事本:" & FileName
End Sub
Private Sub MenuSave_Click() '保存
With CommonDialog1 '设置保存对话框
.DefaultExt = "txt" '设置保存文件的默认扩展名
.InitDir = "d:\" '设置初始目录
.FileName = "记事本.txt" '设置保存的默认文件名
.Filter = "文本文件|*.txt|all files(*.*)|*.*" '过滤文件类型
.FilterIndex = 1 '设置文件类型列表框默认为文本文件
.Action = 2 '设置通用对话框为另存为对话框
End With
Open CommonDialog1.FileName For Output As #1 '打开指定的文件写入数据
Print #1, RichTextBox1.Text '将整个文本框的内容一次性的写入文件
Close #1 '关闭#1号文件
End Sub
Private Sub MenuExit_Click() '退出
Dim result As Integer '定义整型
If Me.Caption = "新文件" And RichTextBox1.Text = "" Then '判断用户是否修改了文件
Unload Me
Else '若用户修改了文件,则弹出消息框询问用户是否要保存文件
result = MsgBox("您已经对文件作了修改,要保存吗?", vbYesNoCancel, "提示")
Select Case result '选择选定
Case 6 '单击了Yes按钮,是
MenuSave_Click
Case 2 '单击了Cancel按钮,取消
Exit Sub
Case 7 '单击了No按钮,否
Unload Me
End Select
End If
End Sub
Private Sub Form_Unload(Cancel As Integer) '退出
Dim result As Integer
If Me.Caption = "新文件" And RichTextBox1.Text = "" Then '判断用户是否修改了文件
Unload Me
Else '若用户修改了文件,则弹出消息框询问用户是否要保存文件
result = MsgBox("您已经对文件作了修改,要保存吗?", vbYesNoCancel, "提示")
Select Case result
Case 6 '单击了Yes按钮
MenuSave_Click
Case 2 '单击了Cancel按钮
Exit Sub
Case 7 '单击了No按钮
Unload Me
End Select
End If
End Sub
Private Sub MenuSelectAll_Click() '全选
RichTextBox1.SelStart = 0 '选取文本的起始位置
RichTextBox1.SelLength = Len(RichTextBox1.Text) '选取文本的字符个数
RichTextBox1.SetFocus '把光标移到指定的文本框中
End Sub
Private Sub MenuCut_Click() '剪切
Clipboard.Clear '清空剪贴板内容
Clipboard.SetText RichTextBox1.SelText '设置剪贴板内容为选定文本
RichTextBox1.SelText = "" '删除文本框中选定内容
End Sub
Private Sub MenuCopy_Click() '复制
Clipboard.Clear '清空剪贴板内容
Clipboard.SetText RichTextBox1.SelText '将选定文本复制到剪贴板
End Sub
Private Sub MenuPaste_Click() '粘贴
RichTextBox1.SelText = Clipboard.GetText '将剪贴板上的内容复制到文本框中
End Sub
Private Sub MenuFont_Click() '设置字体
CommonDialog1.Flags = cdlCFBoth Or cdlCFEffects 'cdlCFBoth 对话框列出可用的打印机和屏幕字体. cdlCFEffects 对话框允许删除线,下划线,以及颜色效果。
CommonDialog1.ShowFont '显示“字体”对话框
RichTextBox1.SelFontName = CommonDialog1.FontName '设置字体
RichTextBox1.SelFontSize = CommonDialog1.FontSize '设置字号
RichTextBox1.SelBold = CommonDialog1.FontBold '设置是否以粗体显示
RichTextBox1.SelItalic = CommonDialog1.FontItalic '设置是否以斜体显示
RichTextBox1.SelStrikeThru = CommonDialog1.FontStrikethru '设置是否显示删除线
RichTextBox1.SelUnderline = CommonDialog1.FontUnderline '设置是否显示下划线
RichTextBox1.SelColor = CommonDialog1.Color '设置字的颜色
End Sub
Private Sub MenuColor_Click() '背景颜色
CommonDialog1.Flags = 2 '打开完整的对话框
CommonDialog1.ShowColor '显示“颜色”对话框
RichTextBox1.BackColor = CommonDialog1.Color '背景颜色为通用对话框选定的颜色
End Sub
Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then '弹出式菜单
PopupMenu MenuEdit, vbPopupMenuLeftAlign '弹出式菜单显示编辑下拉菜单,鼠标在弹出式菜单左上角
Else
Exit Sub
End If
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) '工具条
On Error Resume Next '如果出现错误,忽略错误,继续执行
Select Case Button.Key '按关键字选择
Case "新建"
MenuNew_Click
Case "打开"
MenuOpen_Click
Case "保存"
MenuSave_Click
Case "剪切"
MenuCut_Click
Case "复制"
MenuCopy_Click
Case "粘贴"
MenuPaste_Click
Case "粗体"
RichTextBox1.SelBold = Not RichTextBox1.SelBold
Case "斜体"
RichTextBox1.SelItalic = Not RichTextBox1.SelItalic
Case "下划线"
RichTextBox1.SelUnderline = Not RichTextBox1.SelUnderline
Case "左对齐"
RichTextBox1.SelAlignment = 0
Case "居中"
RichTextBox1.SelAlignment = 2
Case "右对齐"
RichTextBox1.SelAlignment = 1
Case "字体设置"
MenuFont_Click
Case "背景颜色"
MenuColor_Click
End Select
End Sub
Private Sub MenuUsage_Click() 'ActiveX 公用帮助
With CommonDialog1
.HelpFile = "c:\windows\help\vbcmn96.hlp"
.HelpCommand = &HB Or cdlHelpSetContents
.ShowHelp
End With
End Sub
Private Sub MenuAbout_Click() '关于
MsgBox "记事本 土木分院 土0801-5 风云 制作", vbOKOnly, "关于" 'vbOKOnly 只显示 OK 按钮
End Sub
Private Sub Timer1_Timer() '自助计时器
Label1.FontSize = 24
Label1.FontName = "宋体"
Label1.Caption = "Time: " & Time
End Sub
Form1.Height = 7700
Form1.Width = 11000
End Sub
Private Sub Form_Resize() '设置richtextbox属性 窗体大小改变会触发的事件
On Error Resume Next '如果出现错误,忽略错误,继续执行
RichTextBox1.Top = 900
RichTextBox1.Left = 20
RichTextBox1.Height = ScaleHeight - 40
RichTextBox1.Width = ScaleWidth - 40
End Sub
Private Sub MenuNew_Click() '新建
RichTextBox1.Text = "" '清空文本框
FileName = "未命名" '通过对话框获取的文件名为未命名
Form1.Caption = FileName
End Sub
Private Sub MenuOpen_Click() '打开
CommonDialog1.Filter = "文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*" '文件格式
CommonDialog1.ShowOpen '显示打开文件对话框
RichTextBox1.Text = "" '清空文本框
FileName = CommonDialog1.FileName '定义文件名
RichTextBox1.LoadFile FileName
Form1.Caption = "记事本:" & FileName
End Sub
Private Sub MenuSave_Click() '保存
With CommonDialog1 '设置保存对话框
.DefaultExt = "txt" '设置保存文件的默认扩展名
.InitDir = "d:\" '设置初始目录
.FileName = "记事本.txt" '设置保存的默认文件名
.Filter = "文本文件|*.txt|all files(*.*)|*.*" '过滤文件类型
.FilterIndex = 1 '设置文件类型列表框默认为文本文件
.Action = 2 '设置通用对话框为另存为对话框
End With
Open CommonDialog1.FileName For Output As #1 '打开指定的文件写入数据
Print #1, RichTextBox1.Text '将整个文本框的内容一次性的写入文件
Close #1 '关闭#1号文件
End Sub
Private Sub MenuExit_Click() '退出
Dim result As Integer '定义整型
If Me.Caption = "新文件" And RichTextBox1.Text = "" Then '判断用户是否修改了文件
Unload Me
Else '若用户修改了文件,则弹出消息框询问用户是否要保存文件
result = MsgBox("您已经对文件作了修改,要保存吗?", vbYesNoCancel, "提示")
Select Case result '选择选定
Case 6 '单击了Yes按钮,是
MenuSave_Click
Case 2 '单击了Cancel按钮,取消
Exit Sub
Case 7 '单击了No按钮,否
Unload Me
End Select
End If
End Sub
Private Sub Form_Unload(Cancel As Integer) '退出
Dim result As Integer
If Me.Caption = "新文件" And RichTextBox1.Text = "" Then '判断用户是否修改了文件
Unload Me
Else '若用户修改了文件,则弹出消息框询问用户是否要保存文件
result = MsgBox("您已经对文件作了修改,要保存吗?", vbYesNoCancel, "提示")
Select Case result
Case 6 '单击了Yes按钮
MenuSave_Click
Case 2 '单击了Cancel按钮
Exit Sub
Case 7 '单击了No按钮
Unload Me
End Select
End If
End Sub
Private Sub MenuSelectAll_Click() '全选
RichTextBox1.SelStart = 0 '选取文本的起始位置
RichTextBox1.SelLength = Len(RichTextBox1.Text) '选取文本的字符个数
RichTextBox1.SetFocus '把光标移到指定的文本框中
End Sub
Private Sub MenuCut_Click() '剪切
Clipboard.Clear '清空剪贴板内容
Clipboard.SetText RichTextBox1.SelText '设置剪贴板内容为选定文本
RichTextBox1.SelText = "" '删除文本框中选定内容
End Sub
Private Sub MenuCopy_Click() '复制
Clipboard.Clear '清空剪贴板内容
Clipboard.SetText RichTextBox1.SelText '将选定文本复制到剪贴板
End Sub
Private Sub MenuPaste_Click() '粘贴
RichTextBox1.SelText = Clipboard.GetText '将剪贴板上的内容复制到文本框中
End Sub
Private Sub MenuFont_Click() '设置字体
CommonDialog1.Flags = cdlCFBoth Or cdlCFEffects 'cdlCFBoth 对话框列出可用的打印机和屏幕字体. cdlCFEffects 对话框允许删除线,下划线,以及颜色效果。
CommonDialog1.ShowFont '显示“字体”对话框
RichTextBox1.SelFontName = CommonDialog1.FontName '设置字体
RichTextBox1.SelFontSize = CommonDialog1.FontSize '设置字号
RichTextBox1.SelBold = CommonDialog1.FontBold '设置是否以粗体显示
RichTextBox1.SelItalic = CommonDialog1.FontItalic '设置是否以斜体显示
RichTextBox1.SelStrikeThru = CommonDialog1.FontStrikethru '设置是否显示删除线
RichTextBox1.SelUnderline = CommonDialog1.FontUnderline '设置是否显示下划线
RichTextBox1.SelColor = CommonDialog1.Color '设置字的颜色
End Sub
Private Sub MenuColor_Click() '背景颜色
CommonDialog1.Flags = 2 '打开完整的对话框
CommonDialog1.ShowColor '显示“颜色”对话框
RichTextBox1.BackColor = CommonDialog1.Color '背景颜色为通用对话框选定的颜色
End Sub
Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then '弹出式菜单
PopupMenu MenuEdit, vbPopupMenuLeftAlign '弹出式菜单显示编辑下拉菜单,鼠标在弹出式菜单左上角
Else
Exit Sub
End If
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) '工具条
On Error Resume Next '如果出现错误,忽略错误,继续执行
Select Case Button.Key '按关键字选择
Case "新建"
MenuNew_Click
Case "打开"
MenuOpen_Click
Case "保存"
MenuSave_Click
Case "剪切"
MenuCut_Click
Case "复制"
MenuCopy_Click
Case "粘贴"
MenuPaste_Click
Case "粗体"
RichTextBox1.SelBold = Not RichTextBox1.SelBold
Case "斜体"
RichTextBox1.SelItalic = Not RichTextBox1.SelItalic
Case "下划线"
RichTextBox1.SelUnderline = Not RichTextBox1.SelUnderline
Case "左对齐"
RichTextBox1.SelAlignment = 0
Case "居中"
RichTextBox1.SelAlignment = 2
Case "右对齐"
RichTextBox1.SelAlignment = 1
Case "字体设置"
MenuFont_Click
Case "背景颜色"
MenuColor_Click
End Select
End Sub
Private Sub MenuUsage_Click() 'ActiveX 公用帮助
With CommonDialog1
.HelpFile = "c:\windows\help\vbcmn96.hlp"
.HelpCommand = &HB Or cdlHelpSetContents
.ShowHelp
End With
End Sub
Private Sub MenuAbout_Click() '关于
MsgBox "记事本 土木分院 土0801-5 风云 制作", vbOKOnly, "关于" 'vbOKOnly 只显示 OK 按钮
End Sub
Private Sub Timer1_Timer() '自助计时器
Label1.FontSize = 24
Label1.FontName = "宋体"
Label1.Caption = "Time: " & Time
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询