| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 551 人关注过本帖
标题:关于VB问题
只看楼主 加入收藏
匡唐瑞
Rank: 2
等 级:论坛游民
帖 子:34
专家分:17
注 册:2010-1-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
关于VB问题
大家好!我是一个初学者,在做自制记事本时,菜单栏上的搜索可以用,但是搜索下一个却不能用,请哪位高手指教一下,谢谢
搜索更多相关主题的帖子: 搜索 记事本 菜单栏 
2010-01-29 12:40
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:5 
再详细。
2010-01-29 13:39
匡唐瑞
Rank: 2
等 级:论坛游民
帖 子:34
专家分:17
注 册:2010-1-29
收藏
得分:0 
这是我做的一个记事本的搜索源码,第一个查找可以使用,但是下面的继续查找却不能用,只会往前走一步
'查找
Private Sub cazao_Click()
sFind = InputBox("请输入要查找的字、词:", "查找内容", sFind)
RichTextBox1.Find sFind
End Sub

'继续查找
Private Sub xiage_Click()
RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1

End Sub
2010-01-29 15:17
匡唐瑞
Rank: 2
等 级:论坛游民
帖 子:34
专家分:17
注 册:2010-1-29
收藏
得分:0 
回复 2楼 bczgvip
你好!
这是我做的一个记事本的搜索源码,第一个查找可以使用,但是下面的继续查找却不能用,只会往前走一步
请帮我看看是不是我哪个地方错了
谢谢!

'查找
Private Sub cazao_Click()
sFind = InputBox("请输入要查找的字、词:", "查找内容", sFind)
RichTextBox1.Find sFind
End Sub

'继续查找
Private Sub xiage_Click()
RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1

End Sub
2010-01-29 15:28
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4940
专家分:30047
注 册:2008-10-15
收藏
得分:11 
我试了一下这个函数,查找下一个,我也无法做到,只查到第一个,指定了范围也是同样。无语。

下面是这个函数的 MSDN 的说明
----------------------------------------
Find 方法
      

根据给定的字符串,在 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 参数指定值的组合而变化。下表描述了可能的搜索行为:

开始 结束 搜索行为
指定 指定 从指定的开始位置到指定的结束位置进行搜索。
指定 忽略 在控件中,从指定的位置搜索到文本尾。
忽略 指定 从当前插入点搜索到指定的结束位置。
忽略 忽略 若选择了文本,从当前选择开始搜索;若没选择文本,则搜索控件的整个内容。


----------------------------------------------
我以前写的不用这个函数的查找。

常量定义,在BAS模块文件中的
Public Const 查找标记 = 1
Public Const 替换标记 = 2

Public Const 查找方向向上 = 3
Public Const 查找方向向下 = 4

--------------------------------
这个函数是在窗体中的,由另一个自定义查找窗体调用的。支持向上,向下查找。

Public Function 查找(cs As String, Optional 方向 As Long = 查找方向向下) As Boolean
查找 = False
Dim j As Long
j = Len(cs)
If j = 0 Then
    Exit Function
End If
Dim i As Long
Dim o As Long
o = txtbox.SelStart
If o <= 0 Then o = 1
If o > 1 Then o = o + 1

Select Case 方向
    Case 查找方向向下
        i = InStr(o, txtbox.Text, cs)
        If i > 0 Then
            查找 = True
            
        End If
    Case 查找方向向上
        i = InStrRev(txtbox.Text, cs, o)
        If i > 0 Then
            'txtbox.SelStart = i - 1
            'txtbox.SelLength = j
            查找 = True
        End If
End Select
If 查找 Then
    txtbox.SelStart = i - 1
    txtbox.SelLength = j
    frmMain.SetFocus
    txtbox.SetFocus
End If

End Function

授人于鱼,不如授人于渔
早已停用QQ了
2010-01-29 19:33
frank_tao78
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:69
专家分:143
注 册:2010-1-11
收藏
得分:4 
好像是只指定了开始查找的位置,没有执行查找的语句。
2010-01-29 23:00
快速回复:关于VB问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019118 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved