我必须创建可变数量的标签,并在它们旁边的TextBox控件 - 将整个事物排列成一列,每一行都是Label和TextBox.如果我的主窗口小于所有TextBox控件的总高度,不知何故我需要一个可以滚动TextBoxes列表的滚动条.按Enter键必须将焦点转移到下一个TextBox,并在文本框太多的情况下滚动.
这是一个相当普遍的问题,我想已经有一些预先解决的问题.
有什么建议?
使用TableLayoutPanel.您可以动态添加控件,指定其行/列,并为您维护滚动条(使用适当的设置).它有它的怪癖,但应该适合这种情况.
如果使用WinForms设计器放置TableLayoutPanel,则可以使用它来定义列的样式.您还可以根据Tcks的建议改变每行的样式.
要添加具有指定行/列的控件:
int column = 42; int row = 7; myTableLayoutPanel.Controls.Add(new TextBox(), column, row);