2017-02-17 90 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