关于自定义控件大小自动变化的问题,困扰了我几年了,请高手帮忙!

seahi 2019-01-21 10:28:17
1、设计的自定义控件,放到界面后(主要是放在TableLayoutPanel中),当关闭设计界面后再打开Margin就会由原来的3变成4,然后再关掉再打开又会从4变成5,再打开再继续变大,而且并不是所有控件都如此,比如一个界面,同一个自定义控件放5个,可能只有其中一个是这样,其它4个都好,而且这个如果有问题会一直有问题,所以每次打开界面修改后都要把这个控件的Margin再改一遍,真的是不胜其烦,一直没有找到解决的方法。
2、在一个自定义控件中,放了一个TableLayoutPanel,有三列,第一列是Absolute,值100,第二、三列都是percent 50%,第一列放一个Label,第二、三列都是TextBox,Dock都是Fill,现在的问题是,将控件放到Form里的TableLayoutPanel,Label的width自动由100变成了117,并且有的控件会变,有的又不会变,百思不得其解。
跟踪代码发现控件添加进容器的时候就变了。比如:this.tableLayoutPanel1.Controls.Add(this.lblBaseItem1, 0, 4);我知道如果在这句之后再修改控件的Width值应该就正常了。但是由于控件被包裹在自定义控件里面了,不可能这么去做,而且每个控件都要这么做也不太科学。
...全文
767 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
seahi 2019-03-28
  • 打赏
  • 举报
回复
好的,我试试吧。
ygtu2018 2019-01-24
  • 打赏
  • 举报
回复
在TableLayoutPanel里面的单元格加上panel控件,panel的dock属性设置为fill, 再在panel上添加label就可以了
assky124 2019-01-22
  • 打赏
  • 举报
回复
你放个普通的Panel看看有没问题。应该是你自定义控件的BUG
seahi 2019-01-22
  • 打赏
  • 举报
回复
自己来顶一下吧。
seahi 2019-01-21
  • 打赏
  • 举报
回复
没有人遇到过类似情况吗?没有人进来接分么?

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧