C# [winForm编程] 根据label内容Form窗体和label自动扩大缩小的问题 20
我现在有个form,里面有4个label:lblTips,lblLine,lblContext,lblReturn如下图所示,lblContext内容是动态的,现在要求f...
我现在有个form,里面有4个label:lblTips,lblLine, lblContext, lblReturn如下图所示,lblContext内容是动态的,现在要求form和lblContext能实现某种自动缩放,以达到下面两幅图的效果:
要求:1.lblContext里面的内容能能正完整的确显示,2.lblContext缩放的同时不会把其他的label覆盖了
注:我现在用anchor实现了form变化,其他3个label的位置固定,但是lblContext无法正确缩放
问题描述的很清楚了吧? 求大家给个有效的措施,无意义的回复
1楼朋友给的是一个思路,但是不太想用代码来实现,我觉得用VS的窗体设计器设置一下应该就可以达到类似的效果吧?我主要是想学学这个窗体设计器来进行布局的技巧
我自己解决了来总结一下:
基本就是几个属性的使用AutoSize,MaxSize,MinSize,Anchor这三个属性用好,想怎么变就怎么变! 展开
要求:1.lblContext里面的内容能能正完整的确显示,2.lblContext缩放的同时不会把其他的label覆盖了
注:我现在用anchor实现了form变化,其他3个label的位置固定,但是lblContext无法正确缩放
问题描述的很清楚了吧? 求大家给个有效的措施,无意义的回复
1楼朋友给的是一个思路,但是不太想用代码来实现,我觉得用VS的窗体设计器设置一下应该就可以达到类似的效果吧?我主要是想学学这个窗体设计器来进行布局的技巧
我自己解决了来总结一下:
基本就是几个属性的使用AutoSize,MaxSize,MinSize,Anchor这三个属性用好,想怎么变就怎么变! 展开
1个回答
展开全部
考虑这个问题的话就是应该在lblContext的TextChanged时间里进行操作,当触发这个事件时,先去判断内容的长度
string text = lblContext.Text;
int num = 20; //设置一行的长度,根据具体需求来定
然后确定行数,再根据行数确定框的大小
int rows = text/20;
int h = lblContext.Size.height;//为label下移做准备
lblContext.Size.height = 4 * rows;//假设一行高度为4
然后再将最后一个按任意键返回的label位置根据框的大小向下移
lblReturn.location.Y += lblContext.Size.height;
lblReturn.location.Y -= h;
string text = lblContext.Text;
int num = 20; //设置一行的长度,根据具体需求来定
然后确定行数,再根据行数确定框的大小
int rows = text/20;
int h = lblContext.Size.height;//为label下移做准备
lblContext.Size.height = 4 * rows;//假设一行高度为4
然后再将最后一个按任意键返回的label位置根据框的大小向下移
lblReturn.location.Y += lblContext.Size.height;
lblReturn.location.Y -= h;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询