使用自动滚动条功能(c#),给面板添加控件

3

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

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

但是,如果滚动条插入的位置不是在顶部[0],那么控件将被添加到更远的位置。

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

问候 raiserle


@LarsTech 的解决方案:

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

你能解释一下 ucCommandSet 是什么吗?另外,TOP[0] 是什么意思? - Nagaraj Tantri
我的意思是,滚动条在顶部(Scrollvalue = 0) - raiserle
抱歉,ucCommand 是一个用户控件 ;) - raiserle
1个回答

5

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

{ Top = top + this.AutoScrollPosition.Y };

顺便提一下,FlowLayoutPanel可以为您完成此操作。

谢谢。我在Scrollbar下搜索了,而不是Auto。arg。非常感谢!问候 raiserle - raiserle
在我的情况下,它是panel.VerticalScroll.Value(请注意,我们询问的是面板,而不是用户控件)。 - ephraim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接