C#在WinForm开发中Label换行方法
很多朋友都会在开发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高度扩大而影响其它控件的布局,同时也可以更好地显示完整的内容。
三种方法都有它的优缺点,没有说谁优谁劣,只有最适合的,朋友们不妨试试
label好像加不了滚动条,最好使用其他控件,你可以使用textbox,将它设置成多行,可以设置滚动条,如果你想让textbox的样式与label类似,你可以将textbox的边框设置为none,并将背景颜色设置于窗体颜色一致。
用textarea代替label吧, 把它disable了就和label一样了, 这样会自动出现滚动条的.
补充回答: 一般情况下, 如果需要显示的label含有滚动条, 都是用textarea处理的, 也就是多行的textbox. 设置好了效果是一样的.. 如果你一定要用label而且还要滚动条, 估计需要自己写吧.
C#在WinForm开发中Label换行方法的更多相关文章
- 在Winform开发中使用日程控件XtraScheduler(2)--深入理解数据的存储
在上篇随笔<在Winform开发中使用日程控件XtraScheduler>中介绍了DevExpress的XtraScheduler日程控件的各种使用知识点,对于我们来说,日程控件不陌生,如 ...
- Winform开发中如何将数据库字段绑定到ComboBox控件
最近开始自己动手写一个财务分析软件,由于自己也是刚学.Net不久,所以自己写的的时候遇到了很多问题,希望通过博客把一些印象深刻的问题记录下来. Winform开发中如何将数据库字段绑定到ComboBo ...
- 在Winform开发中使用Grid++报表
之前一直使用各种报表工具,如RDLC.DevExpress套件的XtraReport报表,在之前一些随笔也有介绍,最近接触锐浪的Grid++报表,做了一些测试例子和辅助类来处理报表内容,觉得还是很不错 ...
- WinForm开发中通用附件管理控件设计开发参考
1.引言 在WinForm开发中,文件附件的管理几乎在任何一个应用上都会存在,是一个非常通用集中的公共模块.我们日常记录会伴随着有图片.文档等附件形式来展现,如果为每个业务对象都做一个附件管理,或者每 ...
- visual studio 2019工具里添加开发中命令提示符的方法
最新新装了visual studio 2019,发现默认的没有开发者命令提示符 现将添加步骤描述如下: 从VS2019菜单选择"Tools",然后选择"外部工具" ...
- 在Winform开发中,我们使用的几种下拉列表展示字典数据的方式
在Winform开发中中,我们为了方便客户选择,往往使用系统的字典数据选择,毕竟选择总比输入来的快捷.统一,一般我们都会简单封装一下,以便方便对控件的字典值进行展示处理,本篇随笔介绍DevExpres ...
- IOS开发中重写init方法使用需谨慎
IOS开发中重写init方法使用需谨慎 今天在写一个小软件的时候出现一点问题,这个软件的功能是搜索全国学校,首页就是搜索输入框,在框中输入完要查询的学校所在省份,点击buttom后就会跳转到对应的视图 ...
- 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)
编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...
- 在Winform开发中使用FastReport创建报表
FastReport.Net是一款适用于Windows Forms, ASP.NET和MVC框架的功能齐全的报表分析解决方案.可用在Microsoft Visual Studio 2005到2015, ...
随机推荐
- write()与writelines()
f = open('user','a+') f.write('abcde') #write只能写字符串 f.writelines(['444','rrrr','uuu']) #writeline ...
- KETTLE——(一)资源库
对KETTLE有了大概的了解,pdi-ce-6.0.1.0-386也下载完成了. 1.解压pdi-ce-6.0.1.0-386.zip文件,双击运行Spoon.bat(KETTLE是Java开发的,运 ...
- Fiddler抓百度请求
fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的https请求,会提示网页不安全,这时候需要在浏览器上安装证书. 一.网页不安全 1.用fiddler抓包时候,打开百度网页:h ...
- jmeter _Random函数生成随机数
因对发送邮件接口做压测发现相同数据对服务器的压力很小所以需要每次发送请求都需要不同的参数,所以要对某个字段做随机数 选项中-函数助手对话框
- 创建DSN
DSN:ata Source Name (DSN)的PDO命名惯例为:PDO驱动程序的名称,后面为一个冒号,再后面是可选的驱动程序连接数据库变量信息,如主机名.端口和数据库名. 有三种类型的DSN,三 ...
- HDU.6186.CSCource.(前缀和数组和后缀和数组)
明天后天是南昌赛了嘤嘤嘤,这几天就先不更新每日题目了,以后补题嘤嘤嘤. 今天和队友做了一套2017年广西邀请赛,5个题还是有点膨胀...... 好了,先来说一下有意思的题目吧...... CS Cou ...
- Atman开发实习生的笔试题
坐标:山东 编程题(限时30分钟)如何判断一个字符串是否为合法的IP地址.要求:1. 不能使用正则表达式和自带的库函数.2. 列出全部测试用例,并给出原因.3. 把代码的后缀名改成txt后上传,不用压 ...
- [Luogu P3825] [NOI2017] 游戏 (2-SAT)
[Luogu P3825] [NOI2017] 游戏 (2-SAT) 题面 题面较长,略 分析 看到这些约束,应该想到这是类似2-SAT的问题.但是x地图很麻烦,因为k-SAT问题在k>2的时候 ...
- poj2019 二维RMQ裸题
Cornfields Time Limit: 1000MS Memory Limit: 30000K Total Submissions:8623 Accepted: 4100 Descrip ...
- ORACLE之字符集修改(10g)
当从oracle服务器将数据导出成dmp文件后,再导入到本地的oracle数据库时,出现: IMP-00019: 由于 ORACLE 错误 12899 而拒绝行 IMP-00003: 遇到 ORACL ...