2017-02-17 89 views
1

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

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

这是怎么做的?

回答

1

要将控件滚动到ScrollableControl(如TableLayoutPanel)中的视图中,可以使用ScrollControlIntoView方法。例如:

this.ScrollControlIntoView(uc); 

注:它不选择控制。

另外如果您调用Select控件的方法,它将被选中(如果可选),并且它的可滚动父项将被滚动以将所选子控件显示出来。例如:

uc.Select(); 
0

你可以做,通过设置面板的VerticalScroll,但我认为这将是更好地使用ScrollControlIntoView代替。

private void panel1_ControlAdded(object sender, ControlEventArgs e) 
{ 
    panel1.ScrollControlIntoView(e.Control); 
} 

panel.VerticalScroll.Value = panel.VerticalScroll.Maximum 
+0

'panel.VerticalScroll.Value = panel.VerticalScroll.Maximum'不实际工作。你可能想要测试一下。 – LarsTech