我认为将MultiLine选项设置为true的TextBox中的行数有限制。
我有一个程序,每隔几分钟,检查一个电子邮件帐户,但出于控制目的,我放了一个TextBox,表明正在做什么。
我的好奇心是,有谁知道允许多少行?到达那条线时会抛出异常吗?
编辑抱歉忘了在WinForms中提及
编辑2 也许,有人知道一种消除旧线路的方法,会受到赞赏
答案 0 :(得分:7)
文本框可以显示的行数没有限制。
但是,控件可以容纳的字符的数量有限制。有关此主题的更多详细信息,请参阅this question。
答案 1 :(得分:2)
如果将TextBox.MaxLength
属性设置为零,则文本量仅受可用内存的限制。
答案 2 :(得分:1)
另一种解决方案:
<TextBox x:Name="txtAddress"
MaxLines="6"
TextWrapping="Wrap" AcceptsReturn="True"
VerticalScrollBarVisibility="Hidden"
HorizontalScrollBarVisibility="Hidden"
TextChanged="txtAddress_TextChanged"
PreviewTextInput="txtAddress_PreviewTextInput"
PreviewKeyDown="txtAddress_PreviewTextInput"/>
// ...
private void txtAddress_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox txtBx = sender as TextBox;
if (txtBx.LineCount > txtBx.MaxLines)
txtAddress.Text = this._textBeforInput;
}
private string _textBeforInput = string.Empty;
private void txtAddress_PreviewTextInput(object sender, EventArgs e)
{
this._textBeforInput = txtAddress.Text;
}
答案 3 :(得分:0)
WinForms和ASP.NET中的Multiline TextBox都没有这样的限制。 (我不知道WPF :))
答案 4 :(得分:0)
我知道这个问题已经过时了,已经得到了解答,但对于那些寻找HTML / ASP.NET解决方案的人,我创建了一个简短的jsFiddle http://jsfiddle.net/Z3rdZ/2/
<强> HTML 强>
<textarea id="limited-lines" maxlines="4"></textarea>
<强>的jQuery 强>
$('#limited-lines').keydown(function(event){
if ( event.which == 13 ) {
var numberOfLines = $(this).val().split('\n').length;
if(numberOfLines >= $(this).attr('maxlines')){
event.preventDefault();
}
}
});