在文本框中查找值时,如果文本太多,当查找到显示的行下面时,滚动条也没有下移,这时查找的值将看不到,如何能让滚动条自动移动?
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim s1 As String = e.Form.Controls("TextBox2").Text
Dim idx As Integer = vars("位置")
If s1 > "" And s1 <> "查找..." Then
idx = IIf(idx = -1, 0, idx + s1.length) '光标位置在最开始时,位置为0,否则位置等于现有位置+搜索字符长度
Dim i As Integer = txt.text.SubString(idx).IndexOf(s1) '查找现有位置以后的文本,搜索该字符出现的下一个位置
txt.Select '选择该控件
If i = -1 Then '如果没有找到
i = txt.text.IndexOf(s1) '则在文本框中重新查找
If i = -1 Then '如果没有找到
vars("位置") = -1 '不显示,不选取
txt.SelectionStart = 0 '从起始位置选取,最小为0,不能是-1
txt.SelectionLength = 0 '选定字符串的长度
Messagebox.show("没有找到您要查找的值!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
vars("位置") = i '如果找到了
txt.SelectionStart = i '从起始位置选取
txt.SelectionLength = s1.Length '到结束位置,选取结束
End If
Else '如果找到了
vars("位置") = idx + i '找出搜索字符的位置
txt.SelectionStart = idx + i '从起始位置选取
txt.SelectionLength = s1.Length '到结束位置,选取结束
End If
End If