为了账号安全,请及时绑定邮箱和手机立即绑定

从带换行的文本框中获取 LineCount

从带换行的文本框中获取 LineCount

C#
慕田峪9158850 2021-07-23 18:36:42
我想获得带包装的文本框的行数。以下代码不起作用。void txt_Loaded(object sender, RoutedEventArgs e){       TextBox t = (TextBox)sender;       var count = t.LinesCount; // wrong;       // or       var lineCount = t.Text.Split(new[] {'\n','r'}).length;}我有三行,但var lineCount = t.Text.Split(new[] {'\n','r'}).length;返回 4。
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

如果您正在寻找换行的数量,您可以使用GetLineIndexFromCharacterIndex()。

作为参数,您可以传递最后一个字符(对应于Text.Lenght)。


int WrappedLines1 = TextBox.GetLineIndexFromCharacterIndex(TextBox.Text.Length) + 1;

或TextBox.LineCount()。

第一个方法返回一个从零开始的索引,第二个方法从 1 开始计数。


int WrappedLines2 = TextBox.LineCount;

物理行数(由换行分隔的行)可以用 计算Split().Count()。


int LineFeedsCount = TextBox.Text.Split(new[] { "\n" }, StringSplitOptions.None).Count();

如果您不想计算空行,请 StringSplitOptions.RemoveEmptyEntries用作选项参数。


您可以验证行数是否正确,将TextWrapping属性设置为.NoWrap并使用 计算行数.LineCount。


TextBox1.TextWrapping = TextWrapping.NoWrap;

int LineFeedsCount = TextBox1.LineCount;


查看完整回答
反对 回复 2021-07-31
?
暮色呼如

TA贡献1853条经验 获得超9个赞

您的代码中有拼写错误,正在查找字母r而不是回车符\r

尝试 var lineCount = t.Text.Split(new[] {'\n','\r'}).length;

另一种选择是按上述方式拆分,然后将每行的长度除以一行中可以包含的字符数。您可能需要计算此值,因为 TextBox 似乎没有Columns属性。


查看完整回答
反对 回复 2021-07-31
?
呼如林

TA贡献1798条经验 获得超3个赞

我想我找到了LineCount不工作的原因。`


TextBox 实际上在 DataColumn 中。我将宽度设置为 2*。


<telerik:GridViewDataColumn Header="Info" DataMemberBinding="{Binding Info}"  Width="2*">

                <telerik:GridViewDataColumn.CellTemplate>

                    <DataTemplate>

                        <TextBox

                            AcceptsReturn="True"

                            TextWrapping="Wrap" 

                            Text="{Binding Info, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"

                            Loaded="TextBox_Loaded"/>

                    </DataTemplate>

                </telerik:GridViewDataColumn.CellTemplate>

            </telerik:GridViewDataColumn>`. 

Width 属性会导致此问题。如果我删除它,那么它就可以工作。但我需要宽度,不知道为什么以及如何?


查看完整回答
反对 回复 2021-07-31
  • 3 回答
  • 0 关注
  • 276 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信