在运行时,我将控件添加到继承自TableLayoutPanel的控件。根据用户交互,一次添加一个控件,而不是循环。
这是我从TLP继承的控件的设置:
this.RowCount = 0;
this.RowStyles.Clear();
this.Dock = DockStyle.Fill;
this.VerticalScroll.Enabled = true;
this.HorizontalScroll.Enabled = false;
this.AutoScroll = true
我将用户控件添加到面板底部,如下所示:
var uc = new FooControl();
this.Controls.Add(uc);
this.SetRow(uc, this.Controls.Count - 1);
this.SetColumn(uc, 0);
我想将该行/控件滚动到视图中。
这是怎么做到的?
答案 0 :(得分:2)
要将控件滚动到像TableLayoutPanel
这样的ScrollableControl
中的视图,您可以使用ScrollControlIntoView
方法。例如:
this.ScrollControlIntoView(uc);
注意:它不会选择控件。
此外,如果您调用控件的Select
方法,它将被选中(如果可选),并且还将滚动其可滚动父级以将所选子控件带入视图。例如:
uc.Select();
答案 1 :(得分:0)
您可以通过设置Panel的VerticalScroll来实现,但我认为最好使用ScrollControlIntoView。
panel.VerticalScroll.Value = panel.VerticalScroll.Maximum
或
RELY DISABLE NOVALIDATE