日期:2014-05-19  浏览次数:20845 次

困扰已久的问题,如果不解决,项目进行不下去了
问题是:如何让RichTextBox自动适应文字的高度?
网上找了半天,大体思路是,Sendmessage得到文字行数,然后再得到每行文字的高度,就能得到文字的整体高度,我现在已经得到文字的行数了,可是怎么得到文字的整体高度呢??
忘高手解决,如果怎能解决,200分相送,决不食言!!

------解决方案--------------------
不能的,做不到

——不过可以变通罢了,www.codeproject.com里面有一个给它加行号的例子,你可以利用

不果只能大体计算罢了——达不到精确的。
------解决方案--------------------
没有做不到的,只有想不到的
每种字体用字号字形就可以确定其大小了吧?再加上行距就是总的高度
或者直接使用RichTextBox.AutoSize 属性
------解决方案--------------------
你可以试试利用g.MeasureString(text, Font, layoutArea, StringFormat)返回的SizeF
然后动态设置RichTextBox的height
------解决方案--------------------
楼上的几种方案不可行的——我最近作了成型的Richtextbox控件,对他还是比较熟悉的

一行中文字大小不同,还有图片的存在,甚至还有控件——例如QQ的动画控件,如何确认该行高度??


扯蛋乎??——每个都判断,就算实现了,也要卡得要死、晃得要命,难道这就是所谓的做到了??


我想到了天上掉馅饼——但是做不到
------解决方案--------------------
买研究过,期待......
------解决方案--------------------
什么叫自动适应高度?要达到什么目的?能不能说详细点?
------解决方案--------------------
逆向思维

允许有滚动条,判断现在有无滚动条,有则增加高度直至无滚动条。
------解决方案--------------------
楼上的方法也是会不停的晃动和闪动的——本人坚持没有好办法,呵呵
------解决方案--------------------
放一个panel用draw直接写