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