五、确认文件是否需要保存 
  从当前状态退出程序或转移到其它状态如新建文件、打开文件等,如若当前文件已经改变而用户又没有保存,应该提醒用户要不要保存已做的改变。这一点Notepad是有的,在VB中该怎么办呢?  我们可以声明一个布尔变量,用来记录文本框是否有了改变,并利用TextBox控件的Change事件来监视文本框的状态,若有变化,则改变变量值。 
  1.模块或窗体级声明: 
  Dim Ask As Boolean 
  2.在Form_Load中: 
  Ask = False '初值 
  3.在Text1_Change中加入: 
  Ask = True 
  4.退出程序或转移到新的状态时: 
  If Ask = True then  Dim Flag As Integer,MsgStr As String  MsgStr = "文件已经改变,是否要存盘?" '提示语  Flag = MsgBox(MsgStr, vbYesNoCancel, "提示") '给予提示  If Flag = vbYes Then SaveIt '选择了确定则保存之:这里假定已有了一个保存文件的子过程SaveIt  If Flag = vbCancel Then Exit Sub  If Flag = vbNo Then Cancel = False  End If  '...... 这里写上其它主要处理事件代码  Ask = False '操作结束令其为假,以免老提示 
  六、搜索功能 
  Notepad提供了查找和继续查找字符串的功能。VB中,控件TextBox并不象RichTextBox控件那样提供了Find方法。这样我们只好求助于VB的一些内部函数了。以下是笔者自行编写的一个专用于TextBox控件中查找字符串的函数,函数中用上了VB的InStr等内部函数,这里就不多作解释了。 
  '查找字符串函数[可置于模块或窗体级中]  Function FindMyStr(MyName As TextBox, SearchStr As String) As Integer  Dim Where '获取需要查找的字符串变量  Dim Start As Integer  MyName.SetFocus '文本框获得焦点,以显示所找到的内容  Start = MyName.SelStart + MyName.SelLength + 1  Where = InStr(Start, MyName.Text, SearchStr) '在文本中查找字符串  If Where Then  '若找到则设置选定的起始位置并使找到的字符串高亮  'FindStr = Where - 1  MyName.SelStart = Where - 1  MyName.SelLength = Len(SearchStr)  '否则给出提示  Else: MsgBox "未找到所要查找的字符串。", vbInformation, "提示"  End If  End Function 
  有了这个函数,我们可以这样查找和继续查找字符串: 
  1.在窗体级声明: 
  Dim Search As String '声明要查找的变量 
  2.第一次查找: 
  Dim sFind As String  '若光标不在开头处则令其回到开头  If Text1.SelStart <> 0 Then Text1.SelStart = 0  Search = InputBox("请输入要查找的字词:")  sFind = FindMyStr(Text1, Search) 
  3.继续查找[就简单了]: 
  Dim sFind As String  sFind = FindMyStr(Text1, Search) 
  这样,搜索功能就基本具备了,如再提供向上查找功能,则更令人满意。 
                
 
  2/2   首页 上一页 1 2  |