散分探讨,MsHflexGrid、TextBox、Lable等控件都可以设置成自动折行,当折行完毕后,一个长的字符串到底被折成了几行?

解决方案 »

  1.   

    要折成多少行?就要看你那個Label.Width有多寬?你的行有多長?行長/Label.Width/第個字的寬度=得到多少行每個字的寬度是由你自己測試出來的,中文字符與英文字符的寬度大小不一樣
      

  2.   

    折成多少行要看你的空间的宽度啊,还有中英文字符的数量,中文字和英文字还有中英文标点的宽度都不同,而且对于同一个英文单词,不同字体下的宽度也不同。比如i字母在Tahoma字体和宋体的情况下宽度就不一样
      

  3.   

    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 = &HBAPrivate Sub Form_Click()
    Dim linecount As Long
    linecount = SendMessage(Text1.hWnd, EM_GETLINECOUNT, 0, 0) '返回行数
    MsgBox "Textbox1 中的字符串有 " & linecount & " 行!"
    End SubPrivate Sub Form_Load()
    Dim x As String
    x = String(100, "x")
    x = Replace(x, "x", "CSDN")
    Text1.Text = x
    End Sub
      

  4.   

    MsHflexGrid控件呢?当固定了一个列的宽度以后,我如何根据Cell里的字符串长度进行自动行高?