计算文本框中的换行数

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。