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, ...
随机推荐
- 前端框架React入门课程【视频】
视频教程列表: http://v1.mukewang.com/1a8228ac-5f7f-48de-b1c5-7d1b8bce9c77/L.mp4 1-1 React入门课程介绍 http://v1. ...
- 【ABAP系列】SAP ALV 导出报表数据 始终使用选定的格式”,一旦勾上,就再也不会弹出选择框了。
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ALV 导出报表数据 始 ...
- 安全运维 - Linux系统维护
命令相关 帮助信息命令:help.whatis.info.which.whereis.man 目录管理: cd.ls.mkdir.rm.chmod.mv 用户管理: groupadd.groupdel ...
- python函数-基础知识
一.含义函数是程序内的“小程序” 二.示例 #!/usr/bin/env python #coding:utf-8 def hello(): print('Hello world!') print(' ...
- Hibernate的HQL多表查询
HQL的内连接查询 对于HQL内链接查询,查询的是两张表的数据,这两张表的数据首先是保存在数组之中,然后在将每一个数组保存在List集合之中进行返回 代码片段: @Test // 内连接 public ...
- 实验报告3&学习总结
1.已知字符串:"this is a test of java".按要求执行以下操作: 统计该字符串中字母s出现的次数. 统计该字符串中子串"is"出现的次数. ...
- 并发问题java
两个重要的概念:同步和异步 同步,按照流程顺序一步一步的执行,等待获取单步的返回结果并执行下一步:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式. 同步在一定程度上可以看做是单线程, ...
- 持续集成工具——Jenkins
一.jenkins简介 1.持续集成工具 2.基于JAVA环境 二.环境搭建 1.安装JDK 2.安装配置git 3.安装配置tomcat Tomcat是针对Java的一个开源中间件服务器(容器),基 ...
- Hystrix (容错,回退,降级,缓存)
Hystrix熔断机制就像家里的保险丝一样,若同时使用高功率的电器,就会烧坏电路,这时候保险丝自动断开就有效的保护了电路.而我们程序中也同样是这样.例如若此时数据库压力太大速度很慢,此时还有不断的请求 ...
- IE, Chrome和Firefox浏览器 差异对比
最近的项目中使用Extjs5.6, 其中主要的一个特点就是js文件的动态加载,之前使用Firefox浏览器对js文件进行调试,打断点时,只对当次调试有效,刷新之后,由于动态加载的js文件(文件名后面加 ...