如何获得一个richtextbox中总的行数呢?

liuha123 2004-10-19 12:27:50
我使用以下代码来获得特定行的特定字符

Private Sub Form_Click()
Dim Arr() As String
Dim S As String
S = Text1.Text
Arr = Split(S, vbCrLf)
MsgBox Mid(Arr(4), 5, 1)
End Sub

但不知道:
如何获得一个richtextbox中总的行数呢?
...全文
596 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
of123 2004-10-19
  • 打赏
  • 举报
回复


msgbox "text1有" & len(text1)-len(replace(text1,vbcrlf,""))+1 & "行"
SafeF8 2004-10-19
  • 打赏
  • 举报
回复
'Adding line numbers to the front of text in a rich text box
'Example by HeSaidJoe
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 Declare Function SendMessageStr Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As String) As Long
Private Const EM_GETLINE = &HC4
Private Const EM_GETLINECOUNT = &HBA
Private Const EM_LINEINDEX = &HBB
Private Const EM_LINELENGTH = &HC1
Private Sub Command1_Click()
Dim lngCount As Long
Dim lngLineIndex As Long
Dim lngLength As Long
Dim strBuffer As String
Dim strRichText As String
Dim i As Integer
'Get Line count
lngCount = SendMessage(RichTextBox1.hwnd, EM_GETLINECOUNT, 0, 0)
With RichTextBox1
For i = 0 To lngCount - 1
'Get line index
lngLineIndex = SendMessage(.hwnd, EM_LINEINDEX, i, 0)
'get line length
lngLength = SendMessage(.hwnd, EM_LINELENGTH, lngLineIndex, 0)
'resize buffer
strBuffer = Space(lngLength)
'get line text
Call SendMessageStr(.hwnd, EM_GETLINE, i, ByVal strBuffer)
'Number each line
strRichText = strRichText & CStr(i + 1) & " " & strBuffer & vbCrLf
Next
'rewrite numbered text in RichTextBox
.Text = strRichText
End With
End Sub
Private Sub Form_Load()
With RichTextBox1
.Text = "line one" & vbCrLf
.Text = .Text & "line two" & vbCrLf
.Text = .Text & "line three"
End With
End Sub
lxcc 2004-10-19
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim s As String
Dim pos As Long
Dim textboxlinecount As Integer

textboxlinecount = 0
pos = 1
s = RichTextBox1.Text
Do
textboxlinecount = textboxlinecount + 1
pos = InStr(pos, s, vbCrLf) '找到第一个vbcrlf(分行符号)
If pos > 0 Then pos = pos + 2 '跳过vbcrlf
Loop Until pos = 0 '直到没有分行符号为止
Msgbox "共有" + Str(textboxlinecount) + " 行"
End Sub
MY2000 2004-10-19
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3464/3464325.xml?temp=.5408747

1,451

社区成员

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

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