当一个控件的WordWrap属性被设置成True时,如何判断一段文本被折成几行?

ahlegend 2005-09-25 12:41:30
散分探讨,MsHflexGrid、TextBox、Lable等控件都可以设置成自动折行,当折行完毕后,一个长的字符串到底被折成了几行?
...全文
225 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahlegend 2005-09-29
  • 打赏
  • 举报
回复
MsHflexGrid控件呢?当固定了一个列的宽度以后,我如何根据Cell里的字符串长度进行自动行高?
northwolves 2005-09-25
  • 打赏
  • 举报
回复
TEXTBOX 可以通过发送消息取得行数,LABEL不易。

'add a textbox with "multiline=true","scrollbars=2".

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_GETLINECOUNT = &HBA

Private Sub Form_Click()
Dim linecount As Long
linecount = SendMessage(Text1.hWnd, EM_GETLINECOUNT, 0, 0) '返回行数
MsgBox "Textbox1 中的字符串有 " & linecount & " 行!"
End Sub

Private Sub Form_Load()
Dim x As String
x = String(100, "x")
x = Replace(x, "x", "CSDN")
Text1.Text = x
End Sub
mycatlove 2005-09-25
  • 打赏
  • 举报
回复
折成多少行要看你的空间的宽度啊,还有中英文字符的数量,中文字和英文字还有中英文标点的宽度都不同,而且对于同一个英文单词,不同字体下的宽度也不同。比如i字母在Tahoma字体和宋体的情况下宽度就不一样
Andy__Huang 2005-09-25
  • 打赏
  • 举报
回复
要折成多少行?就要看你那個Label.Width有多寬?你的行有多長?

行長/Label.Width/第個字的寬度=得到多少行

每個字的寬度是由你自己測試出來的,中文字符與英文字符的寬度大小不一樣

ahlegend 2005-09-25
  • 打赏
  • 举报
回复
都不会吗?顶一下

7,762

社区成员

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

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