Для організації елементів управління в пов'язані групи існують спеціальні елементи - контейнери. Наприклад, Panel, FlowLayoutPanel, SplitContainer, GroupBox. Ту ж форму також можна віднести до контейнерів. Використання контейнерів полегшує управління елементами, а також надає формі певний візуальний стиль.
Всі контейнери мають властивість Controls, яке містить всі елементи даного контейнера. Коли ми переносимо який-небудь елемент з панелі інструментів на контейнер, наприклад, кнопку, вона автоматично додається в дану колекцію даного контейнера. Або ми також можемо додати елемент керування динамічно за допомогою коду в цю ж колекцію.
Динамічне додавання елементів
Додамо на форму кнопку динамічно. Для цього додамо подія завантаження форми, в якому буде створюватися новий елемент управління.
Це можна зробити або за допомогою коду, або візуальним образом.
private void Form1_Load(object sender, EventArgs e)
{
}
Тепер додамо в нього код додавання кнопки на форму:
private
void
Form1_Load(
object
sender, EventArgs e)
{
Button helloButton =
new
Button();
helloButton.BackColor = Color.LightGray;
helloButton.ForeColor = Color.DarkGray;
helloButton.Location =
new
Point(10, 10);
helloButton.Text =
"Привет"
;
this
.Controls.Add(helloButton);
}
Спочатку ми створюємо кнопку і встановлюємо її властивості. Потім, використовуючи метод Controls.Add ми додаємо її в колекцію елементів форми. Якби ми це не зробили, ми б кнопку не побачили, оскільки в цьому випадку для нашої форми її просто не існувало б.
this.Controls.Remove(helloButton);
Хоча в даному випадку в якості контейнера використовувалася форма, але при додаванні і видаленні елементів з будь-якого іншого контейнера, наприклад, GroupBox, буде застосовуватися всі ті ж методи.