如何将TableLayoutPanel的底部滚动到视图中



在运行时,我将控件添加到从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

最新更新