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

时间:2017-02-17 20:40:05

标签: c# .net winforms 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);

我想将该行/控件滚动到视图中。

这是怎么做到的?

2 个答案:

答案 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