怎么实现想记事本那样的查找功能?

pchobby 2002-10-11 01:19:54
Private Sub Command1_Click()
l1 = InStr(l1 + l2, Text1.Text, s)
Text1.SelStart = l1 - 1
Text1.SelLength = Len(s)
Text1.SetFocus
l2 = Len(s)

End Sub

Private Sub Form_Load()
Static l1 As Long
Static l2 As Long
l1 = 1
l2 = 0
s = "sh"
text1.text="hahkjhfasdhdhfjshjfkshshhhhsh"
End Sub
运行是总是抱错
...全文
46 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pchobby 2002-10-11
  • 打赏
  • 举报
回复
能告诉解决的办法吗?找到文本后高亮显示,在单击是继续查找
clousea 2002-10-11
  • 打赏
  • 举报
回复
你的s 定义成局部变量,因而到时会在按钮中会丢失;编程如下:

Dim l1 As Long
Dim l2 As Long
Dim s As String
Private Sub Command1_Click()
l1 = InStr(l1 + l2, Text1.Text, s)
Text1.SelStart = l1 - 1
Text1.SelLength = Len(s)
Text1.SetFocus
l2 = Len(s)
Text1.Text = l1
End Sub
Private Sub Form_Load()
l1 = 1
l2 = 0
s = "sh"
Text1.Text = "hahkjhfasdhdhfjshjfkshshhhhsh"
End Sub
danielinbiti 2002-10-11
  • 打赏
  • 举报
回复
Dim l1 As Long
Dim l2 As Long
Private Sub Command1_Click()
l1 = InStr(l1 + l2, Text1.Text, s)
Text1.SelStart = l1 - 1
Text1.SelLength = Len(s)
Text1.SetFocus
l2 = Len(s)
End Sub
Private Sub Form_Load()
l1 = 1
l2 = 0
s = "sh"
Text1.Text = "hahkjhfasdhdhfjshjfkshshhhhsh"
End Sub

定义在load里的变量不是全局的,所以错误
danielinbiti 2002-10-11
  • 打赏
  • 举报
回复
也可以用富文本框,很容易就可以实现查找
csdnHelp 2002-10-11
  • 打赏
  • 举报
回复
你的l1好象是0,当然要出错!!!
还有你对instr函数不清楚!!你参考一下MSDN(以下为)还有例子:
InStr 函数

返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。

语法

InStr([start, ]string1, string2[, compare])

InStr 函数的语法具有下面的参数:

部分 说明
start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。
string1 必要参数。接受搜索的字符串表达式。
string2 必要参数。被搜索的字符串表达式。
Compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。

设置

compare 参数设置为:

常数 值 描述
vbUseCompareOption -1 使用Option Compare 语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库中信息的比较。


返回值

如果 InStr返回
string1 为零长度 0
string1 为 Null Null
string2 为零长度 Start
string2 为 Null Null
string2 找不到 0
在 string1 中找到string2 找到的位置
start > string2 0

说明

InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧