多行TextBox。允许的最大行数

时间:2011-03-11 18:25:37

标签: c# winforms textbox

我认为将MultiLine选项设置为true的TextBox中的行数有限制。

我有一个程序,每隔几分钟,检查一个电子邮件帐户,但出于控制目的,我放了一个TextBox,表明正在做什么。

我的好奇心是,有谁知道允许多少行?到达那条线时会抛出异常吗?

编辑抱歉忘了在WinForms中提及

编辑2 也许,有人知道一种消除旧线路的方法,会受到赞赏

5 个答案:

答案 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();   
        }
    }
});