以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]文本框中查找值显示问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179744) |
-- 作者:2425004926 -- 发布时间:2022/9/6 21:32:00 -- [求助]文本框中查找值显示问题 在文本框中查找值时,如果文本太多,当查找到显示的行下面时,滚动条也没有下移,这时查找的值将看不到,如何能让滚动条自动移动? Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1") Dim s1 As String = e.Form.Controls("TextBox2").TextDim 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 |
-- 作者:有点蓝 -- 发布时间:2022/9/6 21:46:00 -- 代码最后加上 Dim d = txt.BaseControl d.ScrollToCaret |
-- 作者:2425004926 -- 发布时间:2022/9/7 0:03:00 -- 感谢老师! |