怎么制作根据文字长度而自动改变size的 Richtextbox

kanyong0551 2008-07-01 05:20:37
要求1、根据文字长度而Richtextbox自动改变长度
2、可以回车换行,但第二行的长度比第一行的长度长度时候,Richtextbox长度就发生变化。
3、当换行到第二行时,光标可以回到第一行,继续编辑文字,一旦文字长度超过第二上Richtextbox长度就发生变化。

请求代码或给予提示,小弟不胜感激!
...全文
189 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
smntbk 2008-07-02
  • 打赏
  • 举报
回复
上面只是判断了最后一行的长度,准确的应该是取最长行的长度。

要精确控制的话,好像有点难度:字体的单位是磅,而控件的Width是像素。
smntbk 2008-07-02
  • 打赏
  • 举报
回复
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
string[] str = this.richTextBox1.Lines;
float textLenth = str[str.Length - 1].Length * this.richTextBox1.Font.Size;
if (textLenth > this.richTextBox1.Size.Width)
this.richTextBox1.Width = (int)textLenth;
}

可以实现,不过大小还需要精确控制一下.
smntbk 2008-07-02
  • 打赏
  • 举报
回复
可以先设置WordWrap=false;不允许自动换行。
然后根据Richtextbox的Lines中的内容判断该行输入字符的长度,如果超过了Richtextbox的Width,重新调整Width。
live_7sky 2008-07-02
  • 打赏
  • 举报
回复


的确不好做,还没有见过 需要实现这种功能的。
cpio 2008-07-02
  • 打赏
  • 举报
回复
不好做

实在不行的话,判断它的图形看看,扫描一个字符的宽度,从上到下,如果全是白的,那么肯定没有内容

你是不是想用来做图形系统的文字输入啊?

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧