在运行时,我将控件添加到从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);
我想滚动该行/控件中的视图。
如何完成?
要在 ScrollableControl
中滚动一个控件,例如 TableLayoutPanel
,您可以使用 ScrollControlIntoView
方法。例如:
this.ScrollControlIntoView(uc);
注意:它不选择控件。
另外,如果您调用控件的Select
方法,将选择它(如果可选),并且将滚动滚动的父滚动以使所选的子控制范围内。例如:
uc.Select();
您可以通过设置面板的垂直滚动来做到这一点,但我认为最好使用scrollControlintoview。
private void panel1_ControlAdded(object sender, ControlEventArgs e)
{
panel1.ScrollControlIntoView(e.Control);
}
或
panel.VerticalScroll.Value = panel.VerticalScroll.Maximum