VB搜索RichTextBox1时为什么第二次就不行了

[复制链接]
查看11 | 回复0 | 2009-8-4 17:14:26 | 显示全部楼层 |阅读模式
Find 方法的语法如下:object.Find(string[, start][, end][, options])当没有指定搜索范围(start 与 end )时,如果选择了文本,则 Find 只搜索被选择的文本;若没选择文本,则搜索控件的整个内容。因此您使用RichTextBox1.Find "s"第一搜索时,文本“s”被选择,第二次搜索时,只会搜索选定的文本,而选定的文本就是上次查找的内容,因此才会出现不能二次搜索的问题。可以这样写(从光标向下搜索):If RichTextBox1.Find("s", RichTextBox1.SelStart + RichTextBox1.SelLength) = -1 Then
MsgBox "未找到指定的文本。", 48End IfRichTextBox 不支持直接向上搜索。但是,代码不能这样写:RichTextBox1.Find "s", RichTextBox1.SelStart, Len(RichTextBox1.Text)这样同样会出现只能一次性搜索的问题。 Find 方法(MSDN)根据给定的字符串,在 RichTextBox 控件中搜索文本。不支持命名的参数。语法:object.Find(string, start, end, options)Find 方法的语法包含下面部分:object:必需的。对象表达式,其值是“应用于”列表中的一个对象。 string:必需的。要在控件中查找的字符串表达式。 start:可选的。决定从哪儿开始搜索的整数字符索引。控件中的每一个字符都有一个可唯一标识的整数索引。控件中文本的第一个字符的索引是 0。 end:可选的。决定在哪儿结束搜索的整数字符索引。 options:可选的。用来指定一个或多个可选功能常数的和。所指定的功能如“设置值”中所述。 设置值:对 options 的设置值包括:常数[值]:描述 rtfWholeWord[2]:确定匹配是基于整个单词还是单词的片段。 rtfMatchCase[4]:确定匹配是否基于指定字符串与字符串文本的大小写字体一致。 rtfNoHighlight[8]:确定匹配是否在 RichTextBox 控件中突出显示。 通过把它们的值或常数相加、或者用 Or 运算符使这些值相结合的形式,可使用多个选项。说明:如果找到被搜索的文本,Find 方法将突出显示所指定的文本,同时返回突出显示的第一个字符的索引。如果所指定的文本没有找到,Find 方法则返回 -1。当 HideSelection 属性是 True、且 RichTextBox 控件没有焦点时,如果所使用的 Find 方法没有 rtfNoHighlight 选项,则控件仍然突出显示所找到的文本。此后使用 Find 方法,若插入点不移动,将只搜索突出显示的文本。Find 方法搜索行为,基于 start 和 end 参数指定值的组合而变化。下表描述了可能的搜索行为:开始 结束 搜索行为 指定 指定 从指定的开始位置到指定的结束位置进行搜索。 指定 忽略 在控件中,从指定的位置搜索到文本尾。 忽略 指定 从当前插入点搜索到指定的结束位置。 忽略 忽略 若选择了文本,从当前选择开始搜索;若没选择文本,则搜索控件的整个内容。参考资料:MSDN

已赞过已踩过<
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行