2013-06-29 15 views
1

在我的項目中,我想在運行時訂購控件,如DataGridView我們將如何使用display-index在網格中對字段進行排序。如何在運行時重新排列WinForms控件?

在設計水平我加入3- TextBox s和ComboBox在運行時我想訂購它們,例如彼此相鄰&,第一2個TextBox S的關係顯示,則ComboBox,然後其他TextBox

是否有可能在運行時重新排列控件?

回答

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 
} 
+0

我覺得OP是尋找控制控件的可見性。聽起來像他想組織一個3步向導或什麼的。是的,它可以操縱控件的所有屬性 - 你需要更清楚一點你想要完成的事情。或者也許這正是他在尋找的東西 - 不知道我能告訴:) –

+0

DataGridView中的列有一個DisplayIndex屬性,可以讓它們在網格中更改它們的位置。我猜這個OP需要一些類似的東西,我想我給了他一些提示。 –

相關問題