AutoScroll
이 true로 설정된 폼이 있습니다. 폼의 일부 컨트롤은 폼이 시작될 때 보이지 않지만 위치는 이미 설정되어 있습니다. 컨트롤이 가시화되면 현재 위치는 현재 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
속성은 즉시 업데이트되지 않는 것으로 보입니다.
'AutoSize = True'가있는 컨트롤은 그 영향을받지 않습니다. 수정없이 패널에 올바르게 배치됩니다. – LarsTech
@LarsTech 노력에 감사드립니다. 나는 당신의 결론을 듣고 싶습니다. – RoadBump