zoukankan      html  css  js  c++  java
  • C# Label显示多行文本及换行(WinForm/WebForm)

    转载: http://www.cnblogs.com/greatverve/archive/2011/10/20/label-multi.html 

    WinForm

    很多朋友都会在开发WinForm中遇到Label要显示的内容太长,但却不能换行的问题.这里我总结了几种方法,供大家参考:
            第一种是把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高度扩大而影响其它控件的布局,同时也可以更好地显示完整的内容。
    WebForm
    最在做C#项目中有一个Label在数据库中获得数据,然而由于这个字段是一段很长的text值,在页面显示出很长的文字,页面变形,影响了页面的美观
    你可以将lable放在一个已经设置固定大小的表格中,然在程序代码html:

    <asp:label id="lblPosition" style="word-break:break-all;word-wrap:break-word" runat="server"></asp:Label>
    请注意:
      对于没有数字的内容,下面这行完全满足要求,但加了数字就不行,就不行了。   
      style="word-break:keep-all;word-wrap:normal";   
      有数字或者字母的用下面的:   
      style="word-break:break-all;word-wrap:break-word";  

    或Label.Text   =   str.Replace( " ", " <br/> ");
  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/bincoding/p/5806097.html
Copyright © 2011-2022 走看看