如何在运行时重新排列WinForms控件?

时间:2013-06-29 10:25:31

标签: c# winforms

在我的项目中,我想在运行时订购控件,比如DataGridView我们将如何使用display-index命令网格中的字段。

在设计级别,我添加了3 TextBox和1 ComboBox彼此相邻&在运行时我想订购它们,例如,前2个TextBox应显示,然后是ComboBox,然后是另一个TextBox

是否可以在运行时重新排列控件?

1 个答案:

答案 0 :(得分:1)

Windows窗体中的每个Control都有Location属性。您可以通过更改此属性轻松更改控件的位置:

textBox1.Location = new Point(10, 50); // Puts the TextBox at coordinates (10,50)

坐标相对于控件容器的左上角(例如表单本身)。

在您的情况下,您可以轻松地安排这样的控件:

Control[] controls = new Control[] { textBox1, textBox2, comboBox3, textBox3 }; // These are your controls
int left = 20, top = 50; // or any other value
foreach (c in controls)
{
    c.Location = new Point(left, top);
    left += c.Width + 10; // space 10 pixels between controls
}