如何控制RichTextBox控件的缩进量

VBfans_zml 2006-03-16 08:21:17
在RichTextBox控件中编辑文本时,按一次Tab键会缩进8个字符,我想把它修改为:每按一次Tab键缩进4个字符,应该怎么做?请各位帮忙,这里先行谢过。
...全文
215 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
happywqw 2006-03-28
  • 打赏
  • 举报
回复
http://www.cnpopsoft.com/blog/article.asp?id=3
hyzj 2006-03-20
  • 打赏
  • 举报
回复
谢谢暴风雨大哥!
子类编程好像有点难度,我目前还不太熟悉,如果大哥有空的话,能否给出一段代码?

另外,产生了两个新的问题:
1、为什么TextBox能成功,而RichTextBox不行?是什么原因造成的?
2、RichTextBox能接受哪些消息?从哪里可以找到关于RichTextBox的API常数的定义和说明?
VBfans_zml 2006-03-20
  • 打赏
  • 举报
回复
顶!
rainstormmaster 2006-03-17
  • 打赏
  • 举报
回复
用子类这样:
先拦截键盘输入的有关消息,一旦发现用户按下了tab,就调用自己的方法处理(用n个空格代替一个vbtab)
VBfans_zml 2006-03-17
  • 打赏
  • 举报
回复
感谢暴风雨大哥的指点,用TextBox测试获得成功,但是用RichTextBox不行。我已补了sp6

再次请教暴风雨大哥:用子类如何实现?
VBfans_zml 2006-03-16
  • 打赏
  • 举报
回复
首先感谢二位!
To Vansoft Workroom:
我没有找到设置的地方,能否详细一点说明。但是,这样做存在一个问题,我不能要求我的用户都去修改系统设置呀,因为用户操作电脑的水平未知呀。

塞北雪貂兄:
你说的是项目符号的缩进量,不是我要的Tab键的缩进量。另外,那是.Net下的例子

希望有更多兄弟给我帮助,尤其是暴风雨老大,祈上帝让暴风雨老大早点看见这个帖子吧,阿门。
迈克揉索芙特 2006-03-16
  • 打赏
  • 举报
回复
看看这个网址是否有帮助。
http://www.dbo.cn/Resource/msdn/cpref/frlrfsystemwindowsformsrichtextboxclassbulletindenttopic.htm

如果还不行的话就找暴风雨老大吧。
vansoft 2006-03-16
  • 打赏
  • 举报
回复
這是系統裏設置的。
在控制面板裏吧。
rainstormmaster 2006-03-16
  • 打赏
  • 举报
回复
不行的话,就用子类试试
rainstormmaster 2006-03-16
  • 打赏
  • 举报
回复
应该是用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 = &H192

Private Sub Form_Load()
SetTabsStops Me, RichTextBox1, 16'缩进16个字符
End Sub

Private 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
VBfans_zml 2006-03-16
  • 打赏
  • 举报
回复
顶!
有没有解决的办法?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧