Опубликован: 31.08.2006 | Уровень: специалист | Доступ: платный
Лекция 16:

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

Добавление второй формы

  1. Запустите Visual Studio, а затем откройте проект Lucky Seven, расположенный в папке c:\vbnet03sbs\Гл.15\lucky seven. Проект Lucky Seven - это тот же самый игровой автомат, с которым вы работали в "Развертывание приложений Visual Basic .NET" , за исключением того, что он не включает созданного вами проекта развертывания.
  2. Отобразите в Конструкторе Windows Forms главную форму (Form1.vb), если она еще не отображается.
  3. Чтобы добавить в проект вторую форму, щелкните на команде Add Windows Form (Добавить форму Windows) в меню Project (Проект). Вы увидите такое диалоговое окно.


    Вы используете диалоговое окно Add New Item (Добавление нового элемента) для добавления в ваш проект на Visual Basic новых форм, классов, модулей и других компонент. Хотя вы выбрали команду Add Windows Form (Добавить форму Windows), формы - не единственные перечисленные здесь компоненты (по умолчанию выделен шаблон Windows Form). Диалоговое окно Add New Item (Добавление нового элемента) достаточно гибко и если вы передумали добавлять форму, то можете выбрать другую компоненту.

  4. Введите в текстовом поле Name (Имя) имя файла HelpInfo.vb, а затем щелкните на Open (Открыть). В проект Lucky Seven будет добавлена вторая форма с именем HelpInfo.vb. Она появится в Обозревателе решений, как показано здесь.


    Совет. С помощью Обозревателя решений можно переименовать или удалить файлы. Чтобы переименовать файл, щелкните правой кнопкой мыши на файле, а затем на команде Rename (Переименовать). Чтобы удалить файл из вашего проекта, щелкните правой кнопкой мыши на файле, а затем на команде Exclude From Project (Исключить из проекта). Чтобы удалить файл из вашего проекта и стереть его с диска вашего компьютера, выделите этот файл, а затем нажмите на Delete (Удалить).

    Теперь необходимо добавить в форму HelpInfo.vb несколько элементов управления.

  5. Используйте элемент управления Label и нарисуйте в верхней части формы HelpInfo.vb метку. Сделайте длину этой метки равной ширине формы так, чтобы в ней уместился длинный текст.
  6. Используйте элемент управления TextBox и создайте объект текстового поля.
  7. Установите свойство Multiline этого объекта текстового поля на значение True, чтобы можно было изменить размер этого объекта.
  8. Измените размер объекта текстового поля так, чтобы он заполнял почти все пространство формы.
  9. Используйте элемент управления Button и создайте в нижней части формы объект кнопки.
  10. Установите для объектов формы HelpInfo.vb следующие свойства:

    Объект Свойство Установка
    Label1 Text "Инструкции по работе с игровым автоматом Счастливая семерка"
    TextBox1 Scrollbars Vertical
    Text пустой (empty)
    Button1 Text "OK"
    HelpInfo.vb Text "Справка"

    Форма HelpInfo.vb выглядит так.


    Теперь необходимо ввести строку кода программы в процедуру события Button1_Click формы HelpInfo.vb.

  11. Чтобы отобразить в Редакторе кода процедуру события Button1_Click, сделайте двойной щелчок мышью на кнопке OK.
  12. Введите следующий оператор программы:

    Me.DialogResult = DialogResult.OK

    Форма HelpInfo.vb действует в этом проекте как диалоговое окно, так как она открывается в процедуре события Form1 с помощью метода ShowDialog. После того, как пользователь изучил справочную информацию в этом диалоговом окне, кнопка OK закрывает форму, устанавливая свойство DialogResult текущей формы (Me) на значение DialogResult.OK. Это значение является константой Visual Basic, указывающей, что диалоговое окно закрыто, при этом вызывающую процедуру должно вернуться значение "OK". Более сложное диалоговое окно может с помощью параллельных процедур событий кнопок возвращать и другие значения, такие, как DialogResult.Cancel, DialogResult.No, DialogResult.Yes и DialogResult.Abort. Однако когда устанавливается свойство DialogResult, форма автоматически закрывается.

  13. Прокрутите код программы в Редакторе кода в начало. Введите следующий оператор Imports:

    Imports System.IO

    Этот оператор создает в проекте ссылку на библиотеку классов, содержащую класс StreamReader. Класс StreamReader не связан непосредственно с определением или использованием дополнительных форм - я просто использую его как быстрый способ добавления в новую используемую мною форму текстовой информации.

  14. Снова отобразите форму HelpInfo.vb, а затем сделайте двойной щелчок мышью на фоне формы. В Редакторе кода появится процедура события HelpInfo_Load. Это процедура события, которая запускается при первой загрузке формы в память и отображении ее на экране.
  15. Введите следующие операторы программы:

    Dim StreamToDisplay As StreamReader
    StreamToDisplay = _
    New StreamReader("c:\vbnet03sbs\Гл.15\readme.txt")
    TextBox1.Text = StreamToDisplay.ReadToEnd
    StreamToDisplay.Close()
    TextBox1.Select(0, 0)

    Вместо того чтобы вводить содержимое справочного файла в свойство Text объекта текстового поля (что может занять много времени), для открытия, чтения и отображения в объекте текстового поля файла Readme.txt я использовал класс StreamReader. Если вы прочитали "Развертывание приложений Visual Basic .NET" , то должны помнить, что файл Readme.txt является документом поддержки продукта, содержащим информацию об использовании программы Lucky Seven. Он содержит инструкции по работе, информацию по деинсталляции и контактную информацию. К сожалению, выводить русские символы с помощью этого метода затруднительно. Поэтому мы выведем содержимое англоязычного файла Readme.txt, который находится в папке c:\vbnet03sbs\Гл.15\.

    Класс StreamReader был представлен в "Исследование текстовых файлов и обработка строк" , но вы до сих пор не видели, как он используется в примере кода. StreamReader - это альтернативный по отношению к использованию функции Visual Basic FileOpen способ открывать текстовый файл, предоставляемый .NET Framework. Чтобы использовать StreamReader, необходимо включить в начало кода вашей формы библиотеку классов System.IO. Затем объявите переменную ( StreamToDisplay ) типа StreamReader, которая будет хранить содержимое текстового файла, и откройте этот текстовый файл, указав путь к нему. Наконец, с помощью метода ReadToEnd, который получает из файла весь текст, начиная с текущей позиции (начало текстового фала) и до конца этого файла, вы считываете содержимое текстового файла в переменную StreamToDisplay, и присваиваете ее свойству Text текстового поля. Оператор StreamReader.Close закрывает текстовый файл, а метод Select удаляет выделение из текста, размещенного в объекте текстового поля.

Вы закончили создание формы HelpInfo.vb. Теперь вы добавите объект кнопки и некий код в первую форму.

Сайдахмад Зарипов
Сайдахмад Зарипов
Жанболат Шаймерден
Жанболат Шаймерден

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

Виталий Григорьев
Виталий Григорьев
Россия, москва, мгсги, 2011
Надежда Серекпаева
Надежда Серекпаева
Россия, Тюмень, Тюменский индустриальный институт, 1992