RichTextBox问题

jdsuchen 2004-07-04 10:41:36
有办法取得或者设置行间距吗?

我想计算可视范围内可以融多少行文本:
RichTextBox1.Height/RichTextBox1.Font.Height
RichTextBox1.Height/RichTextBox1.Font.GetHeight
计算出来都不对!

前提:RichTextBox内文本格式一致
...全文
121 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdsuchen 2004-07-05
  • 打赏
  • 举报
回复
第一种方法思路蛮巧妙的,佩服!
但是有问题,RichTextBox中文本不满的时候会返回零

第二种方法不行,计算错误

问题已解决,谢谢!
r.GetLineFromCharIndex(r.GetCharIndexFromPosition(New Point(0, 0)))
可以取得可视的Top Line
这样可以判断某个字符所在行是否可视,只处理可视部分,效率高多了,非常感谢!
AntingZ 2004-07-04
  • 打赏
  • 举报
回复
上面的方法不可取,用下面的试试:

Dim g As Graphics
g = Me.RichTextBox1.CreateGraphics()
lines=RichTextBox1.Height/g.MeasureString("test",RichTextBox1.Font).Height()
MessageBox.Show(lines)
AntingZ 2004-07-04
  • 打赏
  • 举报
回复
Dim r As RichTextBox = RichTextBox1
Dim lines, iFirst, iLast As Int32
iFirst = r.GetLineFromCharIndex(r.GetCharIndexFromPosition(New Point(0, 0)))
iLast = r.GetLineFromCharIndex(r.GetCharIndexFromPosition(New Point(0, r.Height)))
lines = iLast - iFirst '行数
MessageBox.Show(lines)

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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