计算文本框中换行的行数

Shr*_*hat 3 .net vb.net textbox

我在文本框中有一行文本,并且换行为多行,如何计算文本框中换行的行数?

Tim*_*ter 5

你可以使用String.Split

int lineCount = txt.Text.Split(new[] { '\n', 'r' }, StringSplitOptions.None).Length;
Run Code Online (Sandbox Code Playgroud)

如果它是 winforms,TextBox您还可以使用该Lines属性:

int lineCount = txt.Lines.Length;
Run Code Online (Sandbox Code Playgroud)

所以它是 VB.NET:

Dim lineCount = txt.Text.Split({vbLf, vbCr}, StringSplitOptions.None).Length
Run Code Online (Sandbox Code Playgroud)

更新:也许我的理解是错误的,您想计算 UI 元素(如 )TextBox包裹单行文本的“行”。那么上面的方法当然不行了。

你可以使用Text.GetLineFromCharIndex

Dim lineCount = txt.GetLineFromCharIndex(txt.Text.Length - 1)
Run Code Online (Sandbox Code Playgroud)

我必须承认我GetLineFromCharIndex之前不知道,但它似乎按预期工作。我输入了很长的单行文本,行数为 23。在减小文本框的宽度后,它已更改为 40。