Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 515
Эндрю Троелсен
Чтобы рассмотреть процесс добавления элементов управления в форму, давайте начнем с построения типа Form без помощи мастеров, используя только текстовый редактор и компилятор командной строки C#. Создайте новый файл C# с именем ControlsByHand.cs и добавьте в этот файл следующий программный код, определяющий новый класс MainWindow.
using System;
using System.Drawing;
using System.Windows.Forms;
namespace ControlsByHand {
class MainWindow: Form {
// Члены-переменные элементов формы.
private TextBox firstNameBox = new TextBox();
private Button btnShowControls = new Button();
public MainWindow() {
// Конфигурация формы.
this.Text = "Простые элементы управления";
this.Width = 300;
this.Height = 200;
CenterToScreen();
// Добавление в форму нового текстового окна.
firstNameBox.Text = "Привет";
firstNameBox.Size = new Size(150, 50);
firstNameBox.Location = new Point(10, 10);
this.Controls.Add(firstNameBox);
// Добавление в форму новой кнопки.
btnShowControls.Text = "Щелкните здесь";
btnShowControls.Size = new Size(90, 30);
btnShowControls.Location = new Point(10, 10);
btnShowControls.BackColor = Color.DodgerBlue;
btnShowControls Click += new EventHandler(btnShowControls_Clicked);
this Controls.Add(btnShowControls);
}
// Обработка события Click кнопки.
private void.btnShowControls_Clicked(object sender, EventArgs e) {
// Вызов ToString() для каждого элемента управления
// из коллекции Controls формы.
string ctrlInfo = "";
foreach (Control c in this.Controls) {
ctrlInfo += string.Format.("Элемент: {0}\n:", s.ToString());
}
MessageBox.Show(ctrlInfo, "Элементы управления, помещенные в форму");
}
}
}
Добавьте в пространство имен ControlsByHand еще один класс, реализующий метод Main() программы.
class Program {
public static void Main(string[] args) {
}
}
Теперь скомпилируйте полученный файл C# в командной строке, используя следующую команду.
csc /target:winexe *.cs
Запустив приложение и щелкнув на кнопке формы, вы увидите окно сообщения, в котором будет представлен список всех элементов, помещенных в эту форму (рис. 21.1).
Рис. 21.1. Взаимодействие с коллекцией элементов управления формы
Тип Control.ControlCollection
Процедура добавления нового элемента в форму исключительно проста, но свойство Controls требует дополнительного обсуждения. Это свойство возвращает ссылку на вложенный класс с именем ControlCollection, определенный в рамках класса Control. Вложенный тип ControlCollection содержит все элементы управления, помещенные в данную форму. Вы можете получить ссылку на эту коллекцию, чтобы "рассмотреть список" дочерних элементов формы.