使用自动滚动向面板添加控件 (c#)

rai*_*rle 3 .net c# controls scroll addition

AutoScroll我有一个带有 property =的面板true。通过动态地将其他控件添加到面板而不滚动 - 一切正常!

void addControl(){
    int top = 13 + ( this.Controls.Count * cmdSet.Height );
    ucCommandSet cmdSet = new ucCommandSet() { Top = top };
    this.Controls.Add( cmdSet );
}
Run Code Online (Sandbox Code Playgroud)

但是,如果滚动条插入到 TOP [0] 以外的位置,则控件会添加到更靠下的位置。

我需要在计算中包含哪些属性?

问候提高者


@LarsTech 的解决方案:

void addControl(){
    int top = 13 + ( this.Controls.Count * cmdSet.Height ) + this.AutoScrollPosition.Y;
    ucCommandSet cmdSet = new ucCommandSet() { Top = top };
    this.Controls.Add( cmdSet );
}
Run Code Online (Sandbox Code Playgroud)

Lar*_*ech 5

我猜你需要补偿滚动位置:

{ Top = top + this.AutoScrollPosition.Y };
Run Code Online (Sandbox Code Playgroud)

顺便说一句,FlowLayoutPanel 会为您完成此操作。