VB文本框如何多行输出

VB文本框如何多行输出,第1张

VB文本框设置MultiLine 属性为True,可接受和显示多行文本。

MultiLine 属性,返回或设置一个值,该值指示 TextBox 控件是否能够接受和显示多行文本。在运行时是只读的。

在右边的属性框改属性False为True即可。

2楼的兄弟,你算列数的方法也太牛逼了吧,那要是文本 有几百万个字符,你那循环要几百万次呀。

最简单的得到行和列的方法:

int totalline = textBox1GetLineFromCharIndex(textBox1TextLength) + 1;//得到总行数。该行数会随着文本框的大小改变而改变;若只认回车符为一行(不考虑排版变化)请用 总行数=textBox1LinesLength;(记事本2是这种方式)

int index = textBox1GetFirstCharIndexOfCurrentLine();//得到当前行第一个字符的索引

int line = textBox1GetLineFromCharIndex(index) + 1;//得到当前行的行号,从0开始,习惯是从1开始,所以+1

int col = textBox1SelectionStart - index + 1;//SelectionStart得到光标所在位置的索引 减去 当前行第一个字符的索引 = 光标所在的列数(从0开始)

// 假设textbox名为textBox1,首先对textBox1进行如下属性设置

thistextBox1Multiline = true;

thistextBox1ScrollBars = SystemWindowsFormsScrollBarsBoth;

thistextBox1WordWrap = false;

// 之后就可以用如下语句来获取textbox行数了

int lnCount = thistextBox1LinesLength;

// 取得某一行文本的代码示例如下,此处取得第2行文本内容

string txt = thistextBox1Lines[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 & " 列"

把文本框的MultiLine属性设为True就可以换行了。

如果你想用代码在文本框中显示多行文字,可以把字符串和vbCrLf连起来。比如Text1Text

=

"abc"

&

vbCrLf

&

"123",这样abc和123就会显示成2行了。

以上就是关于VB文本框如何多行输出全部的内容,包括:VB文本框如何多行输出、C# textbox怎样获取里面文本有多少行、C#里面textbox有多行数。怎么求这多行的数和呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9596275.html

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

发表评论

登录后才能评论

评论列表(0条)

保存