• 全部
  • VBS
  • .NET技术
  • VBA
  • VB网络编程
  • VB多媒体
  • VB数据库
  • VB控件
  • VB COM/DCOM
  • VB基础类
  • VB API
  • 问答

如何让一个label根据其文字内容的数量动态调整高度?

tlcd 2005-03-14 12:22:01
WINFORM。
现在一个LABEL的具体内容不固定,
但对话框上就是那么大的面积,
怎么办最简单,能使LABEL在内容多的时候也能显示出来,比如一个滑块。

我用了在LABEL下面放PANEL,但没想出怎么能使LABEL的高度能根据内容调整大小。
LABEL的AUTOSIZE属性设了的话,是横向发展的,而且只有一行。
请指点,谢谢!
...全文
190 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hamadou 2005-03-16
不要加什么size。
直接设置:label1.width = 50
如果想动态地根据字符数量来调整,那么也要我们就这样来做:
假设最大宽度是100,看看长度100能容纳多少个字符(字体大小采用系统默认),用总字符数除以每行字符数,就是几行了啊,有几行就乘以23(默认的高度),再设置它的高为这个值就可以了。你自己试试!
回复
tlcd 2005-03-16
谢谢你多次回答阿
不过我都有点说不明白了,
我的意思是 宽度可以设置,但不许直接设,比如直接写 lblaaa.Size.Width = 10是不行的,
必须用以个(x,y)这样的一对值才能赋,可这样就需要知道y,就是高度值了,

而我在这问问题的主要原因就是 事先不知道高度会是多少,而希望LABEL能自动根据字符的数量调整高度!!!
回复
hamadou 2005-03-15
晕,谁说的宽度不能直接设置啊?
不知道最大宽,最大宽就是不要超出你的窗体界面!
实在不行就用多个 label,规定最大长,多了就用下一个label。
回复
tlcd 2005-03-15
"设置它的width为指定宽。"
宽度这个属性是不能直接设置的,只能同时设定(x,y)这样的一对值。
而高度这个值我是不知道的阿?!!
回复
兔子党-顾问 2005-03-14
你可以画一个长一点,宽度不变。还是那么宽的,显示少了就第一行开始,显示多了。就自动换行了。
回复
daview 2005-03-14
对呀,只要控制了LABEL的宽度,高度会自动根据内容自动调整的。
回复
hamadou 2005-03-14
这个,你只要控制它最后的宽度就可以了。
回复
hamadou 2005-03-14
不要设置autosize属性为ture
然后直接在写完text后,设置它的width为指定宽。
至于它的高,如果不设置的话,它会保持默认的23,所以,你可以将它的高,设置成你那个位置所能容纳的最大的高度!
回复
tlcd 2005-03-14
LABEL的AUTOSIZE属性设了的话,就没法再设置宽度了.
而且宽度和高度只能一起设定.

请问,到底如何 要控制它最后的宽度????
回复
发帖
VB
创建于2007-09-28

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
帖子事件
创建了帖子
2005-03-14 12:22
社区公告
暂无公告