检查richtextbox文本区域是否已满

时间:2014-12-29 20:28:53

标签: c# winforms textarea richtextbox

我想在richtexbox中显示一大块文本,但是要限制长度以适应GUI上显示的文本区域。然后,用户点击下一个按钮,它将删除文本区域并继续向前,并在richtextbox中添加更多文本。有点像文本区域的自定义滚动条,但是能够判断文本区域是否还有空间的方法,如果文本字体变大或变小,它将是动态的吗?文本区域已满时是否有事件监听器?

2 个答案:

答案 0 :(得分:3)

我找到了答案。您可以使用:

Size textSize = TextRenderer.MeasureText(richTextBox1.Text, richTextBox1.Font);

了解文字大小,然后检查OnContentResized事件MeasureText()是否大于富文本框的高度。

答案 1 :(得分:2)

如果是WinForms。溢出检测,以防有人复制一堆文本。

    private void richTextBox1_TextChanged(object sender, EventArgs e) {
        if(richTextBox1.Text.Length ==maxlength){
            //textboxfull
        }
        else if (richTextBox1.Text.Length > maxlength) {
            //textbox over flow
        }
    }

如果是WPF

标记:

<RichTextBox Name="rtbEditor" TextChanged="rtbEditor_TextChanged" />

代码:

private void rtbEditor_TextChanged(object sender, TextChangedEventArgs e) {
    string myText = new TextRange(rtbEditor.Document.ContentStart, rtbEditor.Document.ContentEnd).Text;
    if (myText.Length == maxlength) {
        //textboxfull
    }
    else if (myText.Length > maxlength) {
        //textbox over flow
    }
}