Опубликован: 31.08.2006 | Доступ: свободный | Студентов: 3927 / 218 | Оценка: 4.14 / 3.89 | Длительность: 39:16:00
ISBN: 978-5-9570-0021-3
Лекция 16:

Управление формами Windows

Добавление элементов управления в форму во время выполнения

До этого момента вы добавляли объекты в формы с помощью Области элементов и Конструктора Windows Forms. Однако вы также можете создавать объекты Visual Basic в формах во время выполнения - либо для того, чтобы сократить время разработки, либо чтобы отреагировать на текущие потребности программы. Например, можно сгенерировать простое диалоговое окно, содержащее объекты для обработки вводимых данных.

Создание объектов очень просто, так как базовые классы, которые определяют элементы управления в Области элементов, доступны всем программам. Объекты объявляются и их экземпляры создаются с помощью ключевых слов Dim и New. Следующий оператор программы показывает, как работает этот процесс при создании в форме нового объекта кнопки с именем button1:

Dim button1 as New Button

После того, как вы создали объект во время выполнения, можно использовать код для настройки его свойств. В частности, полезно указать имя и расположение объекта, так как вы не указали их вручную с помощью Конструктора Windows Forms. Например, следующие операторы программы настраивают свойства Text и Location нового объекта кнопки:

button1.Text = "Нажми меня"
button1.Location = New Point(20, 25)

Наконец, ваш код должен добавить этот новый объект в коллекцию Controls формы, на которой он был создан, чтобы он стал видимым в программе и активным:

form2.Controls.Add(button1)

Вы можете использовать этот процесс для добавления в форму Visual Basic любого элемента управления из Области элементов. Имя класса, которое вы используете для объявления и создания экземпляра элемента управления - это вариант имени, которое появляется в свойстве Name для каждого элемента управления.

Следующее упражнение демонстрирует, как во время выполнения можно добавить в новую форму элементы управления Label и Button. Эта новая форма будет действовать как диалоговое окно, которое отображает текущую дату.

Создание новых элементов управления Label и Button

  1. Щелкните на команде Close Solution (Закрыть решение) в меню File (Файл), а затем создайте в папке c:\vbnet03sbs\Гл.15 новый проект с именем My Add Controls.
  2. Отобразите форму (Form1.vb), а затем откройте окно Properties (Свойства).
  3. Используйте элемент управления Button и добавьте в форму объект кнопки, а затем измените свойство Text этого объекта кнопки на Отобразить дату.
  4. Чтобы отобразить в Редакторе кода процедуру события Button1_Click, сделайте двойной щелчок мышью на кнопке Отобразить дату.
  5. Введите следующий код программы:

    'Объявляем новую форму и объекты элементов управления
    Dim form2 As New Form
    Dim lblDate As New Label
    Dim btnCancel As New Button
    
    ' Устанавливаем свойства метки
    lblDate.Text = "Текущая дата: " & DateString
    lblDate.Size = New Size(150, 50)
    lblDate.Location = New Point(80, 50)
    
    ' Устанавливаем свойства кнопки
    btnCancel.Text = "Отмена"
    btnCancel.Location = New Point(110, 100)
    
    ' Устанавливаем свойства формы
    form2.Text = "Текущая дата"
    form2.CancelButton = btnCancel
    form2.StartPosition = FormStartPosition.CenterScreen
    
    'Добавляем новые объекты в коллекцию Controls
    form2.Controls.Add(lblDate)
    form2.Controls.Add(btnCancel)
    
    'Отображаем форму как диалоговое окно
    form2.ShowDialog()

    Эта процедура события отображает на экране новую форму, содержащую объекты метки и кнопки. Объект метки содержит текущую дату в соответствии с системными часами вашего компьютера (полученную с помощью DateString ), а свойство Text объекта кнопки установлено на Отмена. Вы добавляете элементы управления в форму, объявляя переменные для хранения этих элементов управления, устанавливая свойства этих объектов и добавляя объекты в коллекцию Controls. В этом упражнении я также впервые демонстрирую свойства Size и CancelButton. Свойство Size требует структуры Size. Для создания структуры Size используется ключевое слово New. Свойство CancelButton позволяет пользователю закрыть диалоговое окно, нажав на (Esc) или щелкнув на кнопке Отмена. (Эти два действия считаются эквивалентными.)

  6. Чтобы запустить программу, щелкните на кнопке Start (Начать).

    Примечание. Готовая программа Add Controls лежит в папке c:\vbnet03sbs\Гл.15\add controls.

    Visual Basic отображает на рабочем столе первую форму.

  7. Щелкните на кнопке Отобразить дату. Visual Basic отобразит на рабочем столе вторую форму, и эта форма будет содержать объект метки и объект кнопки, которые вы определили с помощью кода программы. Показанный на рисунке вверху следующей страницы объект метки содержит текущую дату.
  8. Чтобы закрыть новую форму, щелкните на кнопке Отмена.
  9. Снова щелкните на кнопке Отобразить дату. Новая форма появится точно так же, как это было в первый раз.
  10. Чтобы закрыть форму, нажмите на (Esc). Так как вы установили свойство CancelButton объекта btnCancel, оба действия (щелчок на кнопке Отмена и нажатие (Esc)) приводят к одинаковому результату.
  11. Чтобы завершить выполнение программы, щелкните на кнопке Закрыть формы. Программа остановится, и вернется среда разработки.


Жанболат Шаймерден
Жанболат Шаймерден

Можно ли выбирать язык для надписей и команд в среде разработки?

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Светлана Ведяева
Светлана Ведяева
Россия, Саратов