在VB中如何获取TextBox的行数

在VB中如何获取TextBox的行数,第1张

'获得光标位置(按字节计算,起如行和起始列均为0)

Private Function GetCurPos(ptPos As POINTAPI) As Long

Dim nLine As Long, nCol As Long

Call SendMessage(MeText1hwnd, EM_GETSEL, 0, ptPos)

nLine = SendMessage(MeText1hwnd, EM_LINEFROMCHAR, ptPosx, ByVal 0&) '获得行号

nCol = ptPosx - SendMessage(MeText1hwnd, EM_LINEINDEX, -1, 0) '获得列号

GetCurPos = ptPosx '光标位置(按字节计算)

ptPosy = nLine

ptPosx = nCol

End Function

'获得光标位置(按字符计算)

Private Function GetCurPosCh(ptPos As POINTAPI) As Long

Dim nLine As Long, nCol As Long

Dim ByteBuffer() As Byte

SendMessage MeText1hwnd, EM_GETSEL, 0, ptPos

nLine = SendMessage(MeText1hwnd, EM_LINEFROMCHAR, ptPosx, ByVal 0&) '获得行号

nCol = ptPosx - SendMessage(MeText1hwnd, EM_LINEINDEX, -1, 0)

ReDim ByteBuffer(1024)

ByteBuffer(1) = 4

SendMessage MeText1hwnd, EM_GETLINE, nLine, ByteBuffer(0)

ReDim Preserve ByteBuffer(nCol)

nCol = Len(StrConv(ByteBuffer, vbUnicode)) - 1 '获得列号

GetCurPosCh = MeText1SelStart '光标位置(按字符计算)

ptPosy = nLine + 1

ptPosx = nCol + 1

Erase ByteBuffer

End Function

Call GetCurPosCh(ptPos)

GetTextInfo = " 第 " & ptPosy & " 行 , 第 " & ptPosx & " 列"

通过查找换行符,vb中的回车(vbLf,或Chr(10))和换行(vbCr,或Chr(13))比较特别,也比较混乱。如果是输出到屏幕,则:单用回车,单用换行,先用换行再用回车,这三种情况下都是从当前行换到下一行去,而先用回车再用换行,就会从当前行往下连续走两行。

如果是输出到文本框(要求允许多行显示),除了换行加回车,才会真正换行外,其他的都不换行,但回车和换行都会各占一个字符的长度。为了统一起见,一般就用vbCrLf(或Chr(13) & chr(10))表示换行加回车。

获得一个字符串的行数:

判断chr(10)+chr(13)的个数

获得一个字符串其中任意一行的内容

用Mid(string,

start,

length)

start为那一行启始值,启始值还要通过判断chr(10)+chr(13)

本人QQ:453628001

BEAR-BEN

VB

自学的

以上就是关于在VB中如何获取TextBox的行数全部的内容,包括:在VB中如何获取TextBox的行数、vb记事本如何实现显示行号功能、VB如何获得一个字符串的行数和其中任意一行的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9495222.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存