采用代码动态添加控件

            btn.Top = BtnTop ;

            btn.Height = 49;

            BtnTop += btn.Height + 1;

           this.Controls.Add(btn);

当控件太多时会出现滚动条,当拖动滚动条后再用上面的代码加载控件,

就会出现下图那样的位置错乱

动态加载控件出现的位置错乱问题

原因在于winform大部分控件的Y坐标0点是从可视区域算起。如果想要正常显示,

我们需要把已经上拉部分的高度减去。

这个时候可以使用 AutoScrollPosition.Y属性,这个属性可以知道上拉了多少像素。

注意这个属性的数值都是负的,所以改成下面的代码就可以正常显示了。

           btn.Top = BtnTop + this.AutoScrollPosition.Y;

            btn.Height = 49;

            BtnTop += btn.Height + 1;

           this.Controls.Add(btn);

相关文章:

  • 2022-02-16
  • 2021-07-27
  • 2021-11-25
  • 2022-12-23
  • 2021-06-24
  • 2022-01-04
  • 2021-07-16
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-28
  • 2021-09-21
  • 2021-12-24
  • 2021-05-26
  • 2022-01-10
相关资源
相似解决方案