急:如何跟据文本内容自动调整控件大小????

95000100 2003-08-18 08:36:12
我把文本赋给了文本控件,在屏幕上我想让控件跟据文本内容自动调整大小,但不调整宽而只调整高度???
...全文
54 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
95000100 2003-08-21
  • 打赏
  • 举报
回复
edit也存在这个问题
95000100 2003-08-21
  • 打赏
  • 举报
回复
我又出现问题了,原来text的value也有字数限制啊,这怎么办呢,不可能用EDIT这样它旁边有一竖条怎么办呢
95000100 2003-08-21
  • 打赏
  • 举报
回复
多谢Foxer大哥,我试了,用TEXT也可,怎么给你加分呢,你说吧!
多谢!

qufusongyu 2003-08-20
  • 打赏
  • 举报
回复
wordwrap=.t.
Foxer 2003-08-20
  • 打赏
  • 举报
回复
再加一句:14是一行字的高度,10是EditBox控件在字以外所附加的高度
Foxer 2003-08-20
  • 打赏
  • 举报
回复
我实际试了一下,TextBox是不可以的,因为它不支持多行,要用EditBox
方法:首先确定一行字的高度,然后在EditBox的InteractiveChange事件中增加如下的代码:

SET MEMOWIDTH TO 30 && 设置每行字数(字节)
nlines = MEMLINES(This.Value) &&计算行数
**WAIT WINDOW nLines NOWAIT
This.Height = MIN(120, MAX(20, 14 * nLines + 10)) && 设置控件高度
This.Refresh

This.Height = MIN(120, MAX(20, 14 * nLines + 10)) && 设置控件高度
这一行比较麻烦,其中MAX(20, 14 * nLines + 10)是设置行高,其中20为最小行高,当字符串长度为0的时候,会导致EditBox变成一个小条,所以增加这个条件
MIN(120,...)中的120是最大行高,当输入的东西太长的时候,会导致EditBox的行高无限增长,为了避免这个现象,设置最大行高,当然这个值你可以自己设定或指定一个表达式来计算。

实验环境:Windows XP Pro,VFP 8.0,EditBox.FontSize=9

具体参数(20,14,120)可以自己根据情况改变。

95000100 2003-08-20
  • 打赏
  • 举报
回复
头疼啊,我把TEXTBOX改为了TABLEL,又出现问题了,标签控件有字数限制,怎么办啊,
95000100 2003-08-19
  • 打赏
  • 举报
回复
我试的,好像不行耶,最后没有办法,我只好改程序,又用了LABEl1了,多谢狐狸大歌
Foxer 2003-08-18
  • 打赏
  • 举报
回复
调整宽度不调整高度的办法:用一个和TextBox控件字体属性相同的隐藏的Label控件,它的AutoSize = .T.,然后把文本控件的内容赋给Label,再根据Label的长度确定TextBox控件的长度

缺点就是最长只有255字符

调整高度不调整宽度的办法:
SET MEMOWIDTH TO 指定宽度
然后用MEMLIN(TextBox控件值)就可以确定行数,根据行数再调整TextBox控件高度

2,718

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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