VB设计报告李菊.docx
《VB设计报告李菊.docx》由会员分享,可在线阅读,更多相关《VB设计报告李菊.docx(14页珍藏版)》请在冰豆网上搜索。
![VB设计报告李菊.docx](https://file1.bdocx.com/fileroot1/2023-1/10/a0bfc0fe-4f3b-4e23-b5a7-5dfe16f8947f/a0bfc0fe-4f3b-4e23-b5a7-5dfe16f8947f1.gif)
VB设计报告李菊
西安邮电大学
VB程序设计实验报告
学院:
计算机学院
专业:
网络工程
班级:
1003
姓名:
李菊
学号:
04102068(06)
一.需求分析
对于广大用户的需求分析,现在各种文档编辑器数不胜数,有EmEditor,UEStudio,GridinSoftNotepad,Notepad++,win32pad,SkimEdit等等。
功能也是应有尽有,有能改变字体的,有能改变文字颜色的。
但是,这些软件又存在各种各样的瑕疵或问题:
有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。
仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。
本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。
功能需求分析
(1).菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。
(2)“文件”有“新建”“打开”“保存”“退出”等几个基本菜单:
分别用于新
建文件,打开文件,保存文件,退出记事本等功能。
(3)“编辑”中有“剪切”“复制”“粘贴”等几个基本菜单:
用于剪切文字,复制文字,粘贴文字。
(4)“格式”有“设置字体”,“设置颜色”两个菜单,用于对字体的设置。
(5)“查看”中有“状态栏”用于查看当前鼠标处于哪行哪列。
(6)“帮助”中有“关于记事本”,“记事本主题”两个菜单,用于相关查看。
二.设计课题编辑记事本
三.设计目的通过编写记事本,熟悉并掌握所学VB的程序语言,锻炼编程思想,从而触类旁通发挥自己的创造力编辑自己的作品。
是自己的能力得到一定的锻炼。
四.设计要求
(1)记事本文件菜单的新建、打开、保存、另保为、退出功能。
(2)记事本编辑菜单的剪切、复制、粘贴、查找、全选,日期等功能。
(3)记事本格式菜单的字体、字体颜色、功能。
(4)记事本查看菜单的状态栏。
(5)记事本的帮助对话。
五.设计思路及过程
(1)设计思路:
首先绘制界面,其次编辑菜单,按Ctrl+E调出菜单编辑器,我们来做“文件”,“查看”等几个菜单,接着编写各功能模块具体代码。
(2)设计具体过程
1.绘制界面
新建一个标准EXE工程,将其Caption属性改为“超级记事本”,点击Icon属性给它找个合适的Icon图标。
单击菜单“工程”-“部件”,在弹出的“部件”对话框里找到MicrosoftRichTextBox6.0和公共对话框MicrosoftCommonDialog6.0并选中它们,单击“确定”按钮。
这时左边的工具栏上出现了我们刚才新添的两个控件了。
在窗体上绘制RichTextBox和CommnDialog,其中RichTextBox的大小和位置可不用理睬,我们将在代码中处理它,当然,有必要把它的ScrollBar属性设为2-rtfVertical,这样在打开和编辑文件时垂直滚动条才可用。
2.编辑菜单
按ctrl+E调出菜单编辑器,来做如下几个菜单:
(1)文件菜单:
文件(第一层)file,新建(第二层)new,打开(第二层)open
保存(第二层)save,另存为(第二层)lingsave,打印(第二层)print,退出(第二层)exit
(2)编辑菜单:
编辑(第一层)edit,撤销(第二层)cancel,剪切(第二层)qie,
复制(第二层)copy,粘贴(第二层)tie,删除(第二层)delete,查找(第二层)find,全选(第二层)selectall,时间/日期(第二层)date
(3)格式菜单:
格式(第一层)style,自动换行(第二层)autozhuan,字体(第二层)font
(4)查看菜单:
查看(第一层)cha,状态栏(第二层)state
(5)帮助菜单:
帮助(第一层)help,帮助主题(第二层)topic,关于记事本(第二层)about
3.编辑代码
新建:
PrivateSubnewCreate_Click()
s=MsgBox("是否保存?
",33,"我的记事本")
Ifs=1Then
DimFileType,FiTypeAsString
CommonDialog1.Filter="文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"
CommonDialog1.ShowSave
FileType=CommonDialog1.FileTitle
FiType=LCase(Right(FileType,3))
FileName=CommonDialog1.FileName
SelectCaseFiType
Case"txt"
RichTextBox1.SaveFileFileName,rtfText
Case"rtf"
RichTextBox1.SaveFileFileName,rtfRTF
Case"*.*"
RichTextBox1.SaveFileFileName
EndSelect
Me.Caption="我的记事本:
"&FileName
EndIf
Ifs=2Then
RichTextBox1.Text=""'清空文本框
FileName="未命名"
Me.Caption=FileName
EndIf
EndSub
打开:
PrivateSubopen_Click()
DimFileType,FiTypeAsString
CommonDialog1.Filter="文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"
CommonDialog1.ShowOpen
RichTextBox1.Text=""'清空文本框
FileName=CommonDialog1.FileName
RichTextBox1.LoadFileFileName
Me.Caption="超级记事本:
"&FileName
EndSub
保存:
PrivateSubsave_Click()
DimFileType,FiTypeAsString
CommonDialog1.Filter="文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"
CommonDialog1.ShowSave
FileType=CommonDialog1.FileTitle
FiType=LCase(Right(FileType,3))
FileName=CommonDialog1.FileName
SelectCaseFiType
Case"txt"
RichTextBox1.SaveFileFileName,rtfText
Case"rtf"
RichTextBox1.SaveFileFileName,rtfRTF
Case"*.*"
RichTextBox1.SaveFileFileName
EndSelect
Me.Caption="我的记事本:
"&FileName
EndSub
退出:
PrivateSubEND_Click()
End
EndSub
剪切:
PrivateSubcut_Click()
IfRichTextBox1.SelLength>0Then
Clipboard.SetTextRichTextBox1.SelText
RichTextBox1.SelText=""
paste.Enabled=True
EndIf
EndSub
复制
PrivateSubcopy_Click()
IfRichTextBox1.SelLength>0Then
Clipboard.SetTextRichTextBox1.SelText
paste.Enabled=True
EndIf
EndSub
粘贴:
PrivateSubpaste_Click()
RichTextBox1.SelText=Clipboard.GetText
EndSub
全选:
PrivateSubquanxuan_Click()
RichTextBox1.SelStart=0
RichTextBox1.SelLength=Len(RichTextBox1.Text)
EndSub
查找:
PrivateSubFIND_Click()
form2.Show
EndSub
PrivateSubCommand1_Click()
DimconBtnsAsString
DimWAsInteger
ConstconMsgAsString="找不到所查内容"
DimintRetValAsInteger
DimintFoundPosAsInteger
IfCheck2.Value=vbCheckedThen
W=0
Else
W=1
intFoundPos=InStr(1,form1.txt.Text,Text1.Text,W)
EndIf'查找字符
IfintFoundPos=0Then'未找到相应的字符
intRetVal=MsgBox(conMsg,vbDefaultButton2,"Find")
Else
form1.txt.SelStart=intFoundPos-1'选择字符长度
form1.txt.SelLength=Len(Text1.Text)
EndIf
form1.txt.SetFocus'找出相应字符
EndSub
查找下一个:
PrivateSubNEXTFIND_Click()
form2.Show
EndSub
替换:
PrivateSubREPLACE_Click()
Form3.Show
EndSub
当点击“替换”出现以下对话框的示图及代码:
PrivateSubCommand1_Click()“查找下一个”按钮
DimconBtnsAsString
StaticQAsInteger
ConstconMsgAsString="找不到所查内容"
DimintRetValAsInteger
DimintFoundPosAsInteger
intFoundPos=InStr(Q+1,form1.txt.Text,Text1.Text,0)'查找字符
IfintFoundPos=0Then'未找到相应的字符
intRetVal=MsgBox(conMsg,vbDefaultButton2,"Find")
Else
form1.txt.SetFocus
form1.txt.SelStart=intFoundPos-1'选择字符长度
form1.txt.SelLength=Len(Text1.Text)
EndIf
Q=intFoundPos
EndSub
PrivateSubCommand3_Click()“全部替换”按钮
DimAAsString,bAsInteger
StaticnAsInteger
A=InStr(b+1,form1.txt.Text,Text2.Text,1)'查找字符
n=form1.txt.SelStart=A-1
form1.txt.SelLength=Len(Text1.Text)
form1.txt.SelText=Text2.Text
form1.txt.SetFocus
EndSub
PrivateSubCommand2_Click()“替换”按钮
form1.txt.SelText=Text2.Text'替换
form1.txt.SetFocus'得到焦点
EndSub
转到下一行:
PrivateSubREPEAL_Click()
Form4.Show
EndSub
当点击“转行”出现以下对话框的示图及代码
PrivateSubCommand2_Click()
Unloadform2
EndSub
自动换行:
PrivateSubZDHH_Click()
IfZDHH.Checked=FalseThen
ZDHH.Checked=True'如果自动换行
txt.Visible=False'文本框2隐藏
Text2.Visible=True'文本框1显现
Text2.Text=Text1.Text'将文本框2的内容赋给文本框1
Else:
Change.Checked=False'如果不自动换行
Text2.Visible=False'文本框1隐藏
Text1.Visible=True'文本框2显现
Text1.Text=Text2.Text'把文本框1的内容赋给文本框2
EndIf
EndSub
字体:
PrivateSubsize_Click()
CommonDialog1.Flags=1
CommonDialog1.Action=4
RichTextBox1.SelFontSize=CommonDialog1.FontSize
RichTextBox1.SelFontName=CommonDialog1.FontName
RichTextBox1.SelBold=CommonDialog1.FontBold
RichTextBox1.SelItalic=CommonDialog1.FontItalic
RichTextBox1.SelUnderline=CommonDialog1.FontUnderline
RichTextBox1.SelStrikeThru=CommonDialog1.FontStrikethru
EndSub
字体颜色:
PrivateSubcolor_Click()
CommonDialog1.Action=3
RichTextBox1.SelColor=CommonDialog1.color
EndSub
状态栏:
PrivateSubZTL_Click()
ZTL.Checked=NotZTL.Checked
IfZTL.Checked=TrueThen
txt.Visible=True
Else
txt.Visible=False
EndIf
EndSub
关于记事本:
PrivateSubabout_Click()
frmAbout.Show
Form1.Enabled=True
EndSub
帮助主题:
PrivateSubusage_Click()
OnErrorGoTohandler
RichTextBox1.LoadFile"Readme.txt",rtfText'请写好Readme.txt文件并存入程序所在文件夹中
Me.Caption="我的记事本:
"&"使用说明"
ExitSub
handler:
MsgBox"使用说明文档可能已经被移除,请与作者联系。
"
EndSub
工具栏:
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComCtlLib.Button)
OnErrorResumeNext
SelectCaseButton.Key
Case"保存"
CommonDialog1.Filter="文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"
CommonDialog1.ShowSave
FileType=CommonDialog1.FileTitle
FiType=LCase(Right(FileType,3))
FileName=CommonDialog1.FileName
SelectCaseFiType
Case"txt"
RichTextBox1.SaveFileFileName,rtfText
Case"rtf"
RichTextBox1.SaveFileFileName,rtfRTF
Case"*.*"
RichTextBox1.SaveFileFileName
EndSelect
Me.Caption="记事本:
"&FileName
Case"打开"
CommonDialog1.Filter="文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"
CommonDialog1.ShowOpen
RichTextBox1.Text=""'清空文本框
FileName=CommonDialog1.FileName
RichTextBox1.LoadFileFileName
Me.Caption="记事本:
"&FileName
Case"新建"
wang=MsgBox("是否保存?
",33,"记事本")
Ifwang=1Then
CommonDialog1.Filter="文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"
CommonDialog1.ShowSave
FileType=CommonDialog1.FileTitle
FiType=LCase(Right(FileType,3))
FileName=CommonDialog1.FileName
SelectCaseFiType
Case"txt"
RichTextBox1.SaveFileFileName,rtfText
Case"rtf"
RichTextBox1.SaveFileFileName,rtfRTF
Case"*.*"
RichTextBox1.SaveFileFileName
EndSelect
Me.Caption="记事本:
"&FileName
EndIf
Ifwang=2Then
RichTextBox1.Text=""'清空文本框
FileName="未命名"
Me.Caption=FileName
EndIf
Case"复制"
IfRichTextBox1.SelLength>0Then
Clipboard.SetTextRichTextBox1.SelText
mnupaste.Enabled=True
EndIf
Case"查找"
DimsFindAsString
sFind=InputBox("请输入要查找的字、词:
","查找内容",sFind)
RichTextBox1.findsFind
Case"剪切"
IfRichTextBox1.SelLength>0Then
Clipboard.SetTextRichTextBox1.SelText
RichTextBox1.SelText=""
mnupaste.Enabled=True
EndIf
Case"删除"
RichTextBox1.Text=""
Case"粘贴"
RichTextBox1.SelText=Clipboard.GetText
Case"打印"
CommonDialog1.Action=5
Case"帮助"
OnErrorGoTohandler
RichTextBox1.LoadFile"Readme.txt",rtfText'请写好Readme.txt文件并存入程序所在文件夹中
Me.Caption="记事本:
"&"使用说明"
ExitSub
handler:
MsgBox"请进行上网查询。
"
EndSelect
EndSub
编辑:
PrivateSubedit_Click()
Iftxt.SelText=""Then'从TXT控件中删除被选中的文本
cut.Enabled=False'剪切控件为假
copy.Enabled=False'复制控件为假
Else
cut.Enabled=True'剪切控件为真
copy.Enabled=True'复制控件为真
EndIf
Iftxt.SelText=""Then'从TXT控件中删除被选中的文本
cut.Enabled=False
copy.Enabled=False
Else
cut.Enabled=True
copy.Enabled=True
EndIf
IfClipboard.GetText=""Then'从剪贴板上获取文本
paste.Enabled=False'粘贴控件为假
Else
paste.Enabled=True'粘贴控件为真
EndIf
EndSub
制作完成后的界面
六.心得体会
VB程序设计这门课属于自学课,所以这门课的学习主要是自己借助于图书馆与网络进行学习,由于自己平时比较懒散,没有严格按照课程安排进行上课学习,所以对于这次记事本程序设计的完成还是感觉相当艰难的,但在书本和网络资源的帮助下还是完成了作业,经过这段时间也对vb有了一定的掌握,从刚开始练软件如何运行都有点困难到最后成功完成作业,这个过程学到了很多知识。
经过这段时间的学习,现在已经拥有一个像模像样的记事本了。
这个记事本由于用了RichText控件,理论上它能打开和编辑任意大的文档,使用起来的确比Windows自带的记事本方便得多。
当然,肯定还有一些其它的功能需要添加和完善。