首先感谢二位! To Vansoft Workroom: 我没有找到设置的地方,能否详细一点说明。但是,这样做存在一个问题,我不能要求我的用户都去修改系统设置呀,因为用户操作电脑的水平未知呀。塞北雪貂兄: 你说的是项目符号的缩进量,不是我要的Tab键的缩进量。另外,那是.Net下的例子希望有更多兄弟给我帮助,尤其是暴风雨老大,祈上帝让暴风雨老大早点看见这个帖子吧,阿门。
应该是用sendmessage发送EM_SETTABSTOPS消息,我现在用的vb没打补丁,测试的结果是没有执行成功,你如果打了sp6补丁的话,可以测试一下:Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const EM_SETTABSTOPS = &HCB Const LB_SETTABSTOPS = &H192Private Sub Form_Load() SetTabsStops Me, RichTextBox1, 16'缩进16个字符 End SubPrivate Sub SetTabsStops(frm As Form, x As Control, NumCharsBetweenStops As Long) Dim rv As Long, TabStops As Long ' Set tabs at every NumCharsBetweenStops average characters. TabStops = NumCharsBetweenStops * 4 If TypeOf x Is ListBox Then rv = SendMessage(x.hwnd, LB_SETTABSTOPS, 1&, TabStops) ElseIf (TypeOf x Is TextBox) Or (TypeOf x Is RichTextBox) Then rv = SendMessage(x.hwnd, EM_SETTABSTOPS, 1&, TabStops) End If x.Refresh End Sub
http://www.dbo.cn/Resource/msdn/cpref/frlrfsystemwindowsformsrichtextboxclassbulletindenttopic.htm如果还不行的话就找暴风雨老大吧。
To Vansoft Workroom:
我没有找到设置的地方,能否详细一点说明。但是,这样做存在一个问题,我不能要求我的用户都去修改系统设置呀,因为用户操作电脑的水平未知呀。塞北雪貂兄:
你说的是项目符号的缩进量,不是我要的Tab键的缩进量。另外,那是.Net下的例子希望有更多兄弟给我帮助,尤其是暴风雨老大,祈上帝让暴风雨老大早点看见这个帖子吧,阿门。
Private Const EM_SETTABSTOPS = &HCB
Const LB_SETTABSTOPS = &H192Private Sub Form_Load()
SetTabsStops Me, RichTextBox1, 16'缩进16个字符
End SubPrivate Sub SetTabsStops(frm As Form, x As Control, NumCharsBetweenStops As Long)
Dim rv As Long, TabStops As Long
' Set tabs at every NumCharsBetweenStops average characters.
TabStops = NumCharsBetweenStops * 4
If TypeOf x Is ListBox Then
rv = SendMessage(x.hwnd, LB_SETTABSTOPS, 1&, TabStops)
ElseIf (TypeOf x Is TextBox) Or (TypeOf x Is RichTextBox) Then
rv = SendMessage(x.hwnd, EM_SETTABSTOPS, 1&, TabStops)
End If
x.Refresh
End Sub
先拦截键盘输入的有关消息,一旦发现用户按下了tab,就调用自己的方法处理(用n个空格代替一个vbtab)
子类编程好像有点难度,我目前还不太熟悉,如果大哥有空的话,能否给出一段代码?另外,产生了两个新的问题:
1、为什么TextBox能成功,而RichTextBox不行?是什么原因造成的?
2、RichTextBox能接受哪些消息?从哪里可以找到关于RichTextBox的API常数的定义和说明?