Добавление элементов управления в форму вручную
Добавление элементов управления в форму вручную
Независимо от того, какой именно элемент управления вы выбираете для размещения в форме, последовательность шагов, которые при этом выполняются, оказывается одной и той же. Во-первых, вы должны определить члены-переменные, представляющие эти элементы управления. Затем, в рамках конструктора формы (или вспомогательного метода, вызванного конструктором), вы должны настроить вид каждого элемента управления, используя доступные свойства, методы и события этого элемента. Наконец (и это самое важное), после установки элемента управления в исходное состояние, вы должны добавить этот элемент к внутренней коллекции элементов управления формы, используя унаследованное свойство Controls. Если вы не сделаете этот заключительный шаг, ваш элемент управления не будет видимым во время выполнения.
Чтобы рассмотреть процесс добавления элементов управления в форму, давайте начнем с построения типа 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} :", s.ToString());
}
MessageBox.Show(ctrlInfo, "Элементы управления, помещенные в форму");
}
}
}
Добавьте в пространство имен ControlsByHand еще один класс, реализующий метод Main() программы.
class Program {
public static void Main(string[] args) {
Application.Run(new MainWindow());
}
}
Теперь скомпилируйте полученный файл C# в командной строке, используя следующую команду.
csc /target:winexe *.cs
Запустив приложение и щелкнув на кнопке формы, вы увидите окно сообщения, в котором будет представлен список всех элементов, помещенных в эту форму (рис. 21.1).
Рис. 21.1. Взаимодействие с коллекцией элементов управления формы