跟我学做记事本

批发各种小商品

批发各种小商品

2016-02-19 21:09

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的跟我学做记事本,手机电脑控们准备好了吗?一起看过来吧!
用VB做一个记事本实在不很复杂,我们完全可以通过向导来很方便地做出来。但本文只打算讨论用手动方法制作记事本,旨在向VB初学者展示:学VB原来是如此容易!
  通过阅读、研究本文并按本文所述进行尝试,初学者将学到很多东西,如怎样使用RichText控件来打开和保存文件,怎样制作菜单、工具栏和状态栏以及如何对其编写代码等。
  
  第一章让我们的记事本马上运行
  
  急于求成是初学者共有的心愿。那好,请按如下三个步骤做,我们的愿望立即就可以实现!
  
  步骤一:绘制界面。
  新建一个标准EXE工程,将其Caption属性改为“超级记事本”,点击Icon属性给它找个合适的Icon图标。单击菜单“工程”-“部件”,在弹出的“部件”对话框里找到MicrosoftRichTextBox6.0和公共对话框MicrosoftCommonDialog6.0并选中它们,单击“确定”按钮。这时左边的工具栏上出现了我们刚才新添的两个控件了。在窗体上绘制RichTextBox和CommnDialog,其中RichTextBox的大小和位置可不用理睬,我们将在代码中处理它,当然,有必要把它的ScrollBar属性设为2-rtfVertical,这样在打开和编辑文件时垂直滚动条才可用。
  
  步骤二:编辑菜单。
  按Ctrl E调出菜单编辑器,我们来做如下几个菜单:
  一.文件菜单:
  文件(第一层)mnuFile
  新建(第二层)mnuNew
  打开(第二层)mnuOpen
  保存(第二层)mnuSave
  -(第二层)mnuFileSep(分隔线)
  退出(第二层)mnuExit
  二.编辑菜单:
  编辑(第一层)mnuEdit
  复制(第二层)mnuCopy
  剪切(第二层)mnuCut
  粘贴(第二层)mnuPaste
  -(第二层)mnuEditSep(分隔线)
  全选(第二层)mnuSelecAll
  三.搜索菜单:
  搜索(第一层)mnuSearch
  查找(第二层)mnuFind
  查找下一个(第二层)mnuFindOn
  四.帮助菜单:
  帮助(第一层)mnuHelp
  使用说明(第二层)mnuUsage
  关于(第二层)mnuAbout
  (注:各菜单项的快捷键请自行设置)
  
  好了,其它的菜单项以后再根据需要添加。现在进入:
  
  步骤三:编写代码。
  
  '声明查找变量
  DimsFindAsString
  '声明文件类型
  DimFileType,FiTypeAsString
  
  '初始化程序
  PrivateSubForm_Load()
  '设置程序启动时的大小
  Me.Height=6000
  Me.Width=9000
  EndSub
  
  '设置编辑框的位置和大小
  PrivateSubForm_Resize()
  OnErrorResumeNext'出错处理
  RichTextBox1.Top=20
  RichTextBox1.Left=20
  RichTextBox1.Height=ScaleHeight-40
  RichTextBox1.Width=ScaleWidth-40
  EndSub
  
  '新建文件
  PrivateSubmnuNew_Click()
  RichTextBox1.Text=""'清空文本框
  FileName="未命名"
  Me.Caption=FileName
  EndSub
  
  
  '打开文件
  PrivateSubmnuOpen_Click()
  CommonDialog1.Filter="文本文档(*.txt)|*.txt|RTF文档(*.rtf)|*.rtf|所有文件(*.*)|*.*"
  CommonDialog1.ShowOpen
  RichTextBox1.Text=""'清空文本框
  FileName=CommonDialog1.FileName
  RichTextBox1.LoadFileFileName
  Me.Caption="超级记事本:"&FileName
  EndSub
  
  '保存文件
  PrivateSubmnuSave_Click()
  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
  
  '退出
  PrivateSubmnuExit_Click()
  End
  EndSub
  
  '复制
  PrivateSubmnuCopy_Click()
  Clipboard.Clear
  Clipboard.SetTextRichTextBox1.SelText
  EndSub
  
  '剪切
  PrivateSubmnuCut_Click()
  Clipboard.Clear
  Clipboard.SetTextRichTextBox1.SelText
  RichTextBox1.SelText=""
  EndSub
  
  '全选
  PrivateSubmnuSelectAll_Click()
  RichTextBox1.SelStart=0
  RichTextBox1.SelLength=Len(RichTextBox1.Text)
  EndSub
  
  '粘贴
  PrivateSubmnuPaste_Click()
  RichTextBox1.SelText=Clipboard.GetText
  EndSub
  
  '查找
  PrivateSubmnuFind_Click()
  sFind=InputBox("请输入要查找的字、词:","查找内容",sFind)
  RichTextBox1.FindsFind
  EndSub
  
  '继续查找
  PrivateSubmnuFindOn_Click()
  RichTextBox1.SelStart=RichTextBox1.SelStart RichTextBox1.SelLength 1
  RichTextBox1.FindsFind,,Len(RichTextBox1)
  EndSub
  
  '使用说明
  PrivateSubmnuReadme_Click()
  OnErrorGoTohandler
  RichTextBox1.LoadFile"Readme.txt",rtfText'请写好Readme.txt文件并存入程序所在文件夹中
  Me.Caption="超级记事本:"&"使用说明"
  ExitSub
  handler:
  MsgBox"使用说明文档可能已经被移除,请与作者联系。",vbOKOnly,"错误信息"
  EndSub
  
  '关于
  PrivateSubmnuAbout_Click()
  MsgBox"超级记事本Ver1.0版权所有(C)2001土人",vbOKOnly,"关于"
  EndSub
  
  '设置弹出式菜单(即在编辑框中单击鼠标右键时弹出的动态菜单)
  PrivateSubRichTextBox1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  IfButton=2Then
  PopupMenumnuEdit,vbPopupMenuLeftAlign
  Else
  ExitSub
  EndIf
  EndSub
  
  '防止在切换输入法时字体自变(感谢王必成先生提供此方案)
  PrivateSubRichTextBox1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
  IfKeyCode=vbKeySpaceThen
  RichTextBox1.SelFontName=CommonDialog1.FontName
  EndIf
  EndSub
  
  至此,我们的记事本可以编译使用了。点击菜单“文件”-“生成XXX.EXE”,回到桌面运行我们的记事本看看,是不是颇有成就感?
  当然,这样的记事本还比较粗糙,我们还需要做些工作,请看下一章。
  
  
  第二章美化程序界面
  
  多数字处理软件都有工具栏和状态栏。工具栏和状态栏除了能美化我们的程序使其更具有专业性质外,还给用户带来操作上的便利。现在我们就来做一做这两样东西。
  
  一.工具栏
  (一)制作工具栏
  单击“工程”-“部件”,选中MicrosoftWindowsCommonControl6.0并确定。这时,我们要用到的控件就出现在左边的工具栏上了。
  要做工具栏,首先需要一个叫ImageList的控件来装载图像。在程序界面上添加它,然后右键单击此控件,左键单击“属性”,弹出“属性页”对话框的“图像”,再单击“插入图片”就可以一次性装载图片了(如不满意,以后还可以添加)。图片可在C:MicrosoftVisualStudioCommonGraphicsBitmapsTlBr_W95下选择(这里假设你的VB安装在C盘下)。注意了:在插入图片时给每一张图片注明关键字,以便在引用图片时不至于混乱。如插入“新建”的图片,我们在“关键字”栏注明“New”。
  图片有了,接下来在程序界面添加工具栏(ToolBar)。添加后工具栏就出现在菜单下面,右键单击它,选择“属性”,在弹出的“属性页”对话框中的“通用”项作些设置,主要如下两项:
  1.“图像列表”:选择ImageList1
  2.“样式”:根据喜爱选择1-trbStandard或者2-trbFlat
  继续点击“属性页”的“按钮”选项,插入若干按钮。按钮有多种样式,请根据需要设置。这里请一定注意:每一个与用户操作有关的按钮都必须注明关键字、装载图片,如“新建”按钮,在“关键字”项注明“新建”,在“图像”项键入“New”(即ImageList1中的图片关键字),需要的话还可以在“工具提示文本”项填入适当的提示语。
  (二)编写工具栏的按钮代码
  工具栏按钮的代码编辑很简单,可以按照下面的格式去编写:
  PrivateSubToolBar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
  OnErrorResumeNext'出错处理
  SelectCaseButton.Key'按关键字选择
  Case"新建"
  mnuNew_Click'等于菜单项“新建”被单击
  Case"打开"'等于菜单项“打开”被单击
  mnuOpen_Click
  '......(继续编写其它按钮的代码)
  EndSelect
  EndSub
  
  完成后试运行一下我们的程序,我们发现,有了工具栏之后,程序变得漂亮多了,只是有一个问题:打开一个较长的文档后,编辑框的下拉滚动条向上的箭头不见了。原因是:工具条占用一定的空间。解决方法:将“设置编辑框的位置和大小”中的RichTextBox1.Top=20和RichTextBox1.Height=Me.ScaleHeight-40分别改为RichTextBox1.Top=380,RichTextBox1.Height=Me.ScaleHeight-400即可。
  
  二.状态栏
  (一)制作状态栏
  状态栏的英文名字叫StatusBar,在窗体上添加它后会默认出现在窗体的最下方。用鼠标右键点击它,调出“属性页”对话框,单击“窗格”项,插入一些窗格,可以将各个窗格的“样式”设置为:
  0-sbrText显示文本,需编写代码
  1-sbrCaps显示大小写状态,无需编程
  2-sbrNum显示NumLock键开关状态,无需编程
  3-sbrIns显示Insert键状态,无需编程
  4-sbrScr1
  5-sbrTime显示时间,不编程时时间不会随系统时钟变化
  6-sbrDate显示日期,无需编程
  注意:加进状态栏后需将Form_Resze中的RichTextBox1.Height=Me.ScaleHeight-400改为RichTextBox1.Height=Me.ScaleHeight-600。
  (二)状态栏根据其“样式”属性决定用不用编写代码(如上文所述)。下面举些例子,读者可以认真揣摩,从而达到举一反三的效果。
  
  例一:用户选取了“新建”后,让第一个窗格显示:“目前状态:正在打开文件《……》”。请将下面代码写进“打开”菜单里面:
  StatusBar1.Panels(1).Text="目前状态:正在打开文件"&"《"&CommonDialog1.FileTitle&"》"
  
  例二:让第三个窗格显示时间并让时间跟随系统时钟变化。
  首先,给程序加一个Timer控件,将其Interval属性设为1000。然后:
  在Form_Load过程加入:StatusBar1.Panels(1).Text=Time;然后给Timer控件编写代码:
  
  PrivateSubTimer1_Timer()
  IfStatusBar1.Panels(3).TextCStr(Time)Then
  StatusBar1.Panels(3).Text=Time
  EndIf
  EndSub
  
  例三:当编辑框的文本发生变化时让第一个窗格显示:“正在编辑文档:文件名”。
  PrivateSubRichTextBox1_Chang()
  StatusBar1.Panels(1).Text="正在编辑文档:"&CommonDialog1.FileName
  EndSub
  
  辛苦了那么久,我们现在已经拥有一个象模象样的记事本了。这个记事本由于用了RichText控件,理论上它能打开和编辑任意大的文档,使用起来的确比Windows自带的记事本方便得多。当然,还有一些其它的功能需要添加和完善,这就靠你慢慢去完成了。->

展开更多 50%)
分享

猜你喜欢

跟我学做记事本

编程语言 网络编程
跟我学做记事本

跟我学SQL

编程语言 网络编程
跟我学SQL

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用authorwre做记事本

设计软件 平面设计软件 广告设计软件
用authorwre做记事本

跟我学XSL(三)

Web开发
跟我学XSL(三)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

跟我学XSL(四)

Web开发
跟我学XSL(四)

跟我学XSL(一)

Html CSS布局 Div+CSS XHTML
跟我学XSL(一)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

随意设计的分组图案_我们的爱不在

随意设计的分组图案_我们的爱不在

怎样接收电子邮件(POP3协议简介)

怎样接收电子邮件(POP3协议简介)
下拉加载更多内容 ↓