Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 702|回复: 0

C# Label换行解决方法

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-4-26 16:05:31 | 显示全部楼层 |阅读模式

    一、label太短,无法完成显示所要显示信息长度,要换行,解决方法如下:

    (1)

    string aa =(长串) ;

                            string cc= aa.Substring(0,10);//取前10个字符

                            string dd=aa.Substring(11);取后边的

     

                             Label.Text=cc.Trim() + "\n"(换行) +dd.Trim();

    (2)

    如果长串中有特殊字符,如' '(空格)

    string aa=(长串);

    string[] bb = aa.Split(new char[] {' '});

                            for (int i = 0; i <bb.Length ; i++)

                            {

                             Label.Text += bb.ToString()+"\n"((换行));

                            }

    二、另外的方法:

    第一种:

    把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高度扩大而影响其它控件的布局,同时也可以更好地显示完整的内容。

     

    我在青春的田野上播种勤奋与努力,希望能在未来收获成熟和睿智...

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-12-22 21:10 , Processed in 0.054329 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表