label控件中怎么控制文本强制换行

 我来答
snowcbxexam肤
2017-01-17 · 知道合伙人软件行家
snowcbxexam肤
知道合伙人软件行家
采纳数:873 获赞数:2504
北京原石创新信息技术有限公司2015年度优秀员工

向TA提问 私信TA
展开全部
 第一种是把Label的AutoSize属性设为False,手动修改Label的大小.这样的好处是会因内容的长度而自动换行,但是当内容的长度超过所设定的大小时,多出的内容就会无法显示.因此,这种方法适合于基本确定内容长度的时候使用.

  第二种是把Label的Dock设为FILL,同时将AutoSize属性设为False,这种方法可将上面所说的缺点修正,但是同时Label会将其它控件的位置霸占,影响布局.因此,在使用该方法时,最好给Label加上个Panel或GroupBox控件.

  第三种是通过判断内容的长度,动态设置Label的大小.具体程序如下(Label控件取名为Label1,显示内容的字符串为str):
  int LblNum = str.Length; //Label内容长度
  int RowNum = 10; //每行显示的字数
  float FontWidth = label1.Width / label1.Text.Length; //每个字符的宽度
  int RowHeight=15; //每行的高度
  int ColNum = (LblNum - (LblNum / RowNum) * RowNum) == 0 ? (LblNum / RowNum) : (LblNum / RowNum) + 1; //列数
  label1.AutoSize = false; //设置AutoSize
  label1.Width = (int)(FontWidth * 10.0); //设置显示宽度
  label1.Height = RowHeight * ColNum; //设置显示高度

  通过这种方法可以令Label每行所显示的字数得到控制,同时也动态的生成的所对应的行数,这对于排版有很大的好处,但是如果显示内容过多,该方法也会令多出来的内容无法显示.因此,对于显示内容过长的时候,可以在外层加上Panel或GroupBox,设置AutoScroll为true,这样就不会因为太长而导致Label高度扩大而影响其它控件的布局,同时也可以更好地显示完整的内容。
醉美人人儿醉
2017-01-17 · TA获得超过710个赞
知道小有建树答主
回答量:499
采纳率:0%
帮助的人:180万
展开全部
第一种是把Label的AutoSize属性设为False,手动修改Label的大小.这样的好处是会因内容的长度而自动换行,但是当内容的长度超过所设定的大小时,多出的内容就会无法显示.因此,这种方法适合于基本确定内容长度的时候使用. 第二种是把Label的Dock设为F.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式