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;
TA贡献1853条经验 获得超9个赞
您的代码中有拼写错误,正在查找字母r
而不是回车符\r
尝试 var lineCount = t.Text.Split(new[] {'\n','\r'}).length;
另一种选择是按上述方式拆分,然后将每行的长度除以一行中可以包含的字符数。您可能需要计算此值,因为 TextBox 似乎没有Columns
属性。
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 属性会导致此问题。如果我删除它,那么它就可以工作。但我需要宽度,不知道为什么以及如何?
- 3 回答
- 0 关注
- 276 浏览
添加回答
举报