以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何获取文本框当前光标所在行位置,并插入文本  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92812)

--  作者:jspta
--  发布时间:2016/11/14 10:53:00
--  如何获取文本框当前光标所在行位置,并插入文本
如何获取文本框当前光标所在行位置,并插入文本
--  作者:有点蓝
--  发布时间:2016/11/14 11:21:00
--  
文本框Leave事件

vars("L") = e.Sender.SelectionStart

按钮
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
txt.Text = txt.Text.Insert(vars("L"),"插入的文字")

--  作者:jspta
--  发布时间:2016/11/14 11:34:00
--  
这个只能使用Leave事件吗?必须先要保存位置,才能被调用?
--  作者:有点色
--  发布时间:2016/11/14 12:11:00
--  
以下是引用jspta在2016/11/14 11:34:00的发言:
这个只能使用Leave事件吗?必须先要保存位置,才能被调用?

 

只要焦点在文本框里面,可以用在任意事件。

 

但,如果焦点离开了文本框,就不能准确获取 SelectionStart 的值了,所以尽量记录一下。


--  作者:有点蓝
--  发布时间:2016/11/14 12:34:00
--  
C1控件设置太多了,需要这样处理一下:

AfterLoad事件
Dim txt  = e.Form.Controls("TextBox1").basecontrol
txt.Hideselection = False

按钮
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
txt.Text = txt.Text.Insert(txt.SelectionStart,"插入的文字")

--  作者:jspta
--  发布时间:2016/11/14 12:46:00
--  
谢谢!
设置后即可搞定,代码
Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1")
Dim i As Integer =  txt.SelectionStart
txt.Text = txt.Text.Insert(txt.SelectionStart,"插入的文字")
txt.SelectionStart = i + 5