二级VB辅导:VB中自动提示保存修改后的文件计算机二级考试

文章作者 100test 发表时间 2009:04:30 06:46:50
来源 100Test.Com百考试题网


  RichTextBox控件支持文本文件和RTF格式文件,在VB中经常用来显示文件内容。当用来编辑文件时,我们希望程序对文件的修改做出反应,提醒用户是否保存这些修改。
  1 任务与要求
  如图1所示,一个窗体内有一个文件列表(File1)和一个文本显示控件(RichTextBox1)。当单击文件列表(File1)内的文件时,其内容显示在下方的文本显示控件(RichTextBox1)内。如果用户对文本内容进行了改动,则在转向其它文件时(单击文件列表内的其它文件或单击右上角的“关闭”按钮),要求程序给出提示,询问用户是否保存更改,如图2所示。如果用户回答“是”,由保存更改,否则保持原文件不变。

  
  图 1 文件显示
  
  图 2 保存文件提示

  另外,要求在用户做出选择并完成操作后,文本显示控件(RichTextBox1)内显示的内容应为用户刚才想要看的新内容。也就是说,保存文件的过程不影响最近命令的执行,这样比较符合人们的操作习惯。
  要想实现上述功能,就是要解决以下问题。
  (1)如何判断文件是否改动过?
  (2)如何同时实现新文件的显示与旧文件的保存?
  (3)如何判断修改的开始与结束?
  2 过程分析
  2.1 文件被改动的充分条件
  文件被改动时,典型的特征是引起该控件(RichTextBox1)的Change事件发生;但是,这一特征不具有唯一性。当单击File1中的其它文件时,RichTextBox1会显示相应的文件内容,同时也会引起该控件的Change事件发生。为了区分开Change事件发生到底由谁引起,需要增加额外的判断条件GotForcus。
  如果文本显示控件(RichTextBox1)没有获得焦点就直接发生了Change事件,则一定是由于转换文件所引起的。如果该控件在GotForcus事件发生之后才发生Change事件,则一定是由于对文件进行编辑所引起的。由此可以确定文件被改动的充分条件是:文本显示控件RichTextBox1首先获得焦点,然后发生Change事件(Change事件可以发生一次,也可以发生多次),这样,我们就可以借助文本显示控件的两个事件,来判断文件是否被改动。
  2.2 新文件的显示与修改后的文件的保存
  新文件的显示需要占用文本显示控件RichTextBox1,改动过但未保存的旧文件必须有一个临时存放容器,最好的办法是使用另一个文本显示控件RichTextBox2,此控件没有必要显示在前台,设为隐藏属性即可。
  2.3修改的开始与结束
  文本显示控件(RichTextBox1)获得焦点,引起该控件的GotForcus事件发生,可作为修改的开始。此时应记下文件的相关信息,如文件名、文件的绝对路径等,以备保存时使用。
  RichTextBox1控件发生了获得焦点事件之后,又发生了的Change事件,则表明该文件已经被修改。
  当点击其他控件(假如有的话)时,文本显示控件RichTextBox1将失去焦点,引起该控件的LostFocus事件发生。结合之前发生的获得焦点事件、Change事件,该LostFocus事件可作为文件修改结束的标志。此时应给出提示:是否保存修改过的文件。
  3 程序设计
  3.1 窗体设计
  建一个窗体Form1,上面放置文件列表控件File1、文件显示控件RichTextBox1和临时文件存放控件RichTextBox2,各控件的属性如表1所示。
  表1 各控件的属性

 控件名称

  主要属性

  Form1

  Caption = “提示保存修改”

  File1

  手动调节至合适尺寸;Pattern = ”*.txt”

  RichTextBox1

  手动调节至合适尺寸;Scrollbars = “2 – rtfvertical”

  RichTextBox2

  Visible = False

  3.2 过程设计
  新建一标准模块Module1,定义4个全局变量:Mark1、Mark2、Cmnpath2和Name2。其中Mark1用来标记RichTextBox1是否发生获得焦点事件、Mark2用来标记文本内容是否被修改、Cmnpath2用来存放改变文件的绝对路径,Name2用来存放改变文件的文件名。在公共模块里建立一通用过程RTBA_LF00,用来完成保存文件的过程。如图3所示。  


  图 3 通用过程RTBA_LF00

  过程变量K用来存放用户返回值。如果返回值K = 6,则用户选择了“是”,此时对文件进行保存。如果返回值K = 7,则用户选择了“否”,此时不进行任何操作,直接退出子过程。图4为窗体启动过程,只有一项任务:加载File1的路径。

  
  图 4 窗体启动过程Form1_Load


相关文章


VB辅导:如何建立一个VB.NET日期_时间值计算机二级考试
计算机二级:在状态栏中显示帮助信息计算机二级考试
计算机二级:用OLE实现文件拖放计算机二级考试
计算机二级VB辅导:可以换肤的窗体计算机二级考试
二级VB辅导:VB中自动提示保存修改后的文件计算机二级考试
VB辅导:用BASIC语言写智能手机程序计算机二级考试
vb.net实现简单的眼睛保护系统计算机二级考试
用VB制作李萨如图形动态演示程序计算机二级考试
利用VB2005制作颜色渐变的进度条计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛