我有一个AutoScroll
设置为 true 的表单。窗体上的某些控件在窗体启动时是不可见的,但它们的位置已经设置。一旦控件变为可见,就会相对于 current 计算位置AutoScrollPosition
,这是完全不需要的。
知道如何防止这种情况吗?
我尝试在控件首次显示时设置位置,如下所示:
void OnControlVisibleChanged(object sender, EventArgs e)
{
Control ctl = (Control)sender;
if (ctl.Visible)
{
ctl.Location = Point.Add(ctl.Location, new Size(this.AutoScrollPosition));
ctl.VisibleChanged -= OnControlVisibleChanged;
}
}
它适用于某些控件,而其他控件则无效。我不知道为什么。
编辑:似乎当控件变为可见时,真正的 AutoScrollPosition 会发生变化,但AutoScrollPosition
属性不会立即更新。