计算文本框中的换行数
Count wrapped lines in a textbox
我在文本框中有一行文本,它被换行了很多行,如何计算文本框中的换行数?
您可以使用 String.Split
:
int lineCount = txt.Text.Split(new[] { '\n', 'r' }, StringSplitOptions.None).Length;
如果是 winforms TextBox
你也可以使用 Lines
属性:
int lineCount = txt.Lines.Length;
所以是 VB.NET:
Dim lineCount = txt.Text.Split({vbLf, vbCr}, StringSplitOptions.None).Length
更新:也许我的理解是错误的,你想计算"lines" UI-元素(比如TextBox
) 包装了您的单行文本。那么上面当然不行了。
您可以使用 Text.GetLineFromCharIndex
:
Dim lineCount = txt.GetLineFromCharIndex(txt.Text.Length - 1)
我必须承认我以前不知道 GetLineFromCharIndex
,但它似乎按预期工作。我输入了一个很长的单行文本,行数是 23。在我减小文本框的宽度后,它变成了 40。
我在文本框中有一行文本,它被换行了很多行,如何计算文本框中的换行数?
您可以使用 String.Split
:
int lineCount = txt.Text.Split(new[] { '\n', 'r' }, StringSplitOptions.None).Length;
如果是 winforms TextBox
你也可以使用 Lines
属性:
int lineCount = txt.Lines.Length;
所以是 VB.NET:
Dim lineCount = txt.Text.Split({vbLf, vbCr}, StringSplitOptions.None).Length
更新:也许我的理解是错误的,你想计算"lines" UI-元素(比如TextBox
) 包装了您的单行文本。那么上面当然不行了。
您可以使用 Text.GetLineFromCharIndex
:
Dim lineCount = txt.GetLineFromCharIndex(txt.Text.Length - 1)
我必须承认我以前不知道 GetLineFromCharIndex
,但它似乎按预期工作。我输入了一个很长的单行文本,行数是 23。在我减小文本框的宽度后,它变成了 40。