【转】C# 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高度扩大而影响其它控件的布局,同时也可以更好地显示完整的内容。
        三种方法都有它的优缺点,没有说谁优谁劣,只有最适合的

免责声明:文章转载自《【转】C# WinForm中的Label如何换行》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Mongooose 入门Numpy 基本除法运算和模运算下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

loki简单安装配置使用

Grafana Loki isa set of components that can be composed into a fully featured logging stack. Unlike other logging systems, Loki is built around the idea of only indexing labels f...

el-select选中特定项的触发事件

需求:下拉框中如选中自定义时间,则出现弹窗 实现代码: html  <el-select v-model="type"clearable @change="fnEdit"><el-option  v-for="item in typeOptions":key="item.value":label="item.label":value="...

python 下五子棋

import math import tkinter from tkinter import * root = Tk() root.title('helloWorld') # 窗口尺寸 # root.geometry('500x500') # 固定尺寸 root.resizable(0, 0) # 棋盘中一格边长 boxSize = 60 # 横向格...

使用element-ui二次封装一个可复用编辑表单组件

源码:编辑表单组件 组件源码(待优化)editForm.vue: <!-- 搜索表单 --> <template> <el-form ref='editForm' :size="size" inline :label- :model="editData" :rules="editRules">...

c#在WinForm下使用HttpWebRequest上传文件并显示进度

这段时间因项目需要,要实现WinForm下的文件上传,个人觉得采用FTP方法太麻烦,还得配置FTP服务器,要通过防火墙也是一个麻烦。本来打算采用WebClient方法,但是采用这个方法实现后,进度条很短时间后就达到最大值,要等待一段时间才能传送完毕,要是文件太大(我这里测试约100M),会出现错误。后来才知道,原来WebClient是在加载完整个文件到内存...

winform知识

控件相关 1.文本框/label高度 文本框Multiline属性,设为true就可以了。改完高度后再将此属性改回来,要不然多行文本框,按回去就去下一行了。 label的改autoSize属性,设为false就可以了。 2.控件中文字居中 TextAlign属性:MiddleCenter 3.颜色属性 直接输入 #xxxx 4.如何去掉button按钮的...