自动换行的两种代码(C#)

最近有个需求,需要将C# winform中的listBox中的内容自动换行,

其实在用listBox前,已经用textBox实现了大部分功能,可惜最后还是有个焦点的问题,

就是textBox中的文字会自动被选中,也就是蓝背景,超难看,老板就说不行,所以改换ListBox来试一试

  如大家所知,listBox的每一个item就是一条记录,而且默认是不会自动换行的,所以listBox才同时有垂直和水平的滚动条

  百度和google一下后,网上给的思路大概是:限定一个长度,字符串超过长度的部分截取下来,添加到下一个item,这样就人为的实现了listBox的自动换行。

       结合到我的需求中 字符串是包含空格的,所以我就想了两种思路

       思路一:

           1.把字符串分割成一个个单独的单词,然后像串珍珠链子一样,一个个的单词组装起来

           2.如果长度没有超过给定长度则继续组装(这里用到join方法),

              2.1.当超过给定长度时,把最后一个单词从列表中删掉,(并用中间变量保存下来,添加到下一行的开头,中间变量的初始值为空)

            详细看代码:

 1 /*
 2  *字符串换行,考虑到空格,以及完整单词的情况
 3  *@param inputStr 要换行的字符串
 4  *@param textWidth 固定的长度,超过这个长度则进行换行
 5  *
 6  */
 7 public List<string> listBoxWordWrap(string inputStr, int textWidth)
 8 {
 9     List<string> tempList = new List<string>();//临时存放拼接字符串的列表
10     List<string> lastList = new List<string>();//最终的数据
11     int strLength = inputStr.Length;//获取要换行字符串的长度
12
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值