Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 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 содержит все элементы управления, помещенные в данную форму. Вы можете получить ссылку на эту коллекцию, чтобы "рассмотреть список" дочерних элементов формы.