我在VB (2013)中发现了一个非常恼人的bug,我需要一个变通的办法来解决这个问题。
当面板的scroll length值大于panel height时,panel.VerticalScroll.Maximum应设置为此总高度,否则应为panel的height。
据我所知,如果panel小于100px,VerticalScroll.Maximum的默认值是100px,这在一开始是件很愚蠢的事情,因为它的默认值显然应该是面板的高度。
例如:加载空面板时,高度为60px,panel.VerticalScroll.Maximum为100
当我将控件加载到面板中时-如果其中一个控件位于像素60的上方或之后,则panel.VerticalScroll.Maximum将被设置为正确的值> 60
但是如果我只将控件加载到不超过60px的面板中,panel.VerticalScroll.Maximum就会保持在100!
我曾尝试在form load和designer中设置此值,但不起作用。加载控件或将控件放入设计器中会产生相同的效果,只有当控件超出面板的高度时,它才会触发要设置的最大值。
如果默认设置为panel的高度,这是可以的,但当panel的高度小于100px时就不是这样了
这与Scroll Bars无关,我知道LargeChange问题等等,这不是使用scroll bar。
该代码是一个更大的项目的一部分,不能提取,但如果您需要,如果需要,我将编写一个小演示
发布于 2014-03-07 10:55:51
尝试在面板上将AutoScroll设置为false。
我在System.Windows.Forms.ScrollProperties上打开了Maximum设置器,发现以下是在设置器中的第一次检查:
if (this.parent.AutoScroll)
{
return;
}https://stackoverflow.com/questions/22238557
复制相似问题