winform 中lable的过长导致被截取造成难看的界面解决方法

在实际开发过程中,遇到这个问题:


在网上找了半天觉解决不了问题,因为中文和数字占的大小不一样,不能通过截取字符串来完成,不过最后费劲心思终于有所突破。



基本思路,设置一个label控件用来保存名称,设置label的autosize为true,visible=false,然后赋值,判断大小是不是超过了界面。

如超过了则让三个点出现,否则三个省略点不出现。

其他设置:

方法1:设置名称的宽度为合适的大小,要设置名称label的Autosize=false,否则设置不了宽度。这样如果字符串的大小超过了则会自动换行,但是因为height大小固定,所以看不到换行的第二行字符串。

方法2:设置名称label的Autosize=true,然后设置Maxminusize,注意宽度如果不设置,则会自动换行,并显示出来,如果设置高度为一行的高度,则不会显示。



上截图

省略号设置



name设置





用于辅助的lable设置




关键代码:

	this.lbl_NameCopy.Text = StationInfo.StationName;
       
         if (this.lbl_NameCopy.Width > 92)//数字都是根据实际大小进行调整的
         {
             this.lbl_StationName.MaximumSize = new System.Drawing.Size(80, 17);
             this.lbl_Dot.Visible = true;
         }
         else if (this.lbl_NameCopy.Width > 80 && this.lbl_NameCopy.Width <= 92)
         {
             this.lbl_StationName.MaximumSize = new System.Drawing.Size(92, 17);
             this.lbl_Dot.Visible = false;
         }
         else if (this.lbl_NameCopy.Width <= 80)
         {
             this.lbl_Dot.Visible = false;
         }
         this.lbl_StationName.Text = StationInfo.StationName;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值