2014-10-08 40 views
1

我有一个面板属性AutoScroll = true。 通过动态添加其他控件到面板而不滚动 - 一切正常!使用自动滚动功能将控件添加到面板(c#)

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

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

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

问候通过@LarsTech raiserle


解决方案:

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

你能解释一下'ucCommandSet'是什么?另外,你是什么意思的TOP [0]? – 2014-10-08 17:19:43

+0

我的意思是,滚动条是在顶部(Scrollvalue = 0) – raiserle 2014-10-08 17:31:55

+0

对不起,ucCommand是一个用户控件;) – raiserle 2014-10-08 17:38:58

回答

3

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

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

一个FlowLayoutPanel的做这行顺便说一下,你。

+0

谢谢。我'搜索滚动条....不是自动.... **** arg ****。大塔克!视为raiserle – raiserle 2014-10-08 17:33:14