以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]我想在textbox 多行文本框里,按tab键会执行它原有的插入4个缩进符功能 而不是跳转到下一个组件,请问怎么做  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=150588)

--  作者:chen37280600
--  发布时间:2020/6/2 16:24:00
--  [求助]我想在textbox 多行文本框里,按tab键会执行它原有的插入4个缩进符功能 而不是跳转到下一个组件,请问怎么做

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/6/2 16:30:00
--  
keydown事件在光标位置插入4个空格
--  作者:chen37280600
--  发布时间:2020/6/2 17:11:00
--  
我试过在keydown里
先e.cancel =true阻止原生tab事件,但是没用,还是跳到下一个组件,更别说插入了字符了

--  作者:有点蓝
--  发布时间:2020/6/2 17:34:00
--  
贴出具体代码
--  作者:chen37280600
--  发布时间:2020/6/2 20:25:00
--  
其实我想反过来问
keydown事件在光标位置插入4个空格

这个怎么做到?

--  作者:有点蓝
--  发布时间:2020/6/2 20:50:00
--  
试了一下,tab键被控件自身拦截屏蔽掉了,无法触发。
--  作者:chen37280600
--  发布时间:2020/6/2 22:05:00
--  
是咯,好像完全没办法搞我的需求。要不问下狐爸有没什么底层方法?
--  作者:chen37280600
--  发布时间:2020/6/3 10:20:00
--  
问下狐爸有没办法
--  作者:有点蓝
--  发布时间:2020/6/3 10:46:00
--  
换个快捷键使用,比如ctrl+Q

If e.Control AndAlso e.KeyCode = keys.Q
    Dim s As Integer = e.Sender.SelectionStart
    If s < e.Sender.Text.Length Then
        e.Sender.Text = e.Sender.Text.Insert(e.Sender.SelectionStart,vbtab)
        e.Sender.SelectionStart = s + cstr(vbtab).length
    End If
End If

--  作者:chen37280600
--  发布时间:2020/6/3 11:16:00
--  
换个快捷键就没什么意义了,还不如直接敲4个空格。主要是大部分文本框,都会支持tab