五、确认文件是否需要保存
从当前状态退出程序或转移到其它状态如新建文件、打开文件等,如若当前文件已经改变而用户又没有保存,应该提醒用户要不要保存已做的改变。这一点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 |