【问题标题】:Add control to a panel with autoscroll (c#)使用自动滚动将控件添加到面板(c#)
【发布时间】:2014-10-08 17:16:29
【问题描述】:

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

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

但是,如果滚动条插入到与 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 );
}

【问题讨论】:

  • 您能解释一下ucCommandSet 是什么吗?另外,TOP[0] 是什么意思?
  • 我的意思是,滚动条在顶部(Scrollvalue = 0)
  • 对不起,ucCommand 是一个用户控件 ;)

标签: c# .net scroll controls add


【解决方案1】:

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

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

顺便说一句,FlowLayoutPanel 会为您完成这项工作。

【讨论】:

  • 谢谢。我在滚动条下搜索......不是自动...... ****arg****。大坦克!关于raiserle
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2011-12-01
  • 2023-03-31
相关资源
最近更新 更多