如何将 TableLayoutPanel 的底行滚动到视图中
How to scroll bottom row of TableLayoutPanel into view
在运行时,我将控件添加到继承自 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);
我想将 row/control 滚动到视图中。
这是怎么做到的?
在 ScrollableControl
like TableLayoutPanel
, you can use ScrollControlIntoView
方法中将控件滚动到视图中。例如:
this.ScrollControlIntoView(uc);
注意:它不是select控件。
此外,如果您调用控件的 Select
方法,它将被 selected(如果 selectable)并且它的可滚动父级将被滚动以带来 selected 子控件进入视图。例如:
uc.Select();
您可以通过设置面板的 VerticalScroll 来做到这一点,但我认为最好改用 ScrollControlIntoView。
private void panel1_ControlAdded(object sender, ControlEventArgs e)
{
panel1.ScrollControlIntoView(e.Control);
}
或
panel.VerticalScroll.Value = panel.VerticalScroll.Maximum
在运行时,我将控件添加到继承自 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);
我想将 row/control 滚动到视图中。
这是怎么做到的?
在 ScrollableControl
like TableLayoutPanel
, you can use ScrollControlIntoView
方法中将控件滚动到视图中。例如:
this.ScrollControlIntoView(uc);
注意:它不是select控件。
此外,如果您调用控件的 Select
方法,它将被 selected(如果 selectable)并且它的可滚动父级将被滚动以带来 selected 子控件进入视图。例如:
uc.Select();
您可以通过设置面板的 VerticalScroll 来做到这一点,但我认为最好改用 ScrollControlIntoView。
private void panel1_ControlAdded(object sender, ControlEventArgs e)
{
panel1.ScrollControlIntoView(e.Control);
}
或
panel.VerticalScroll.Value = panel.VerticalScroll.Maximum