Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка к курсовой работе.doc
Скачиваний:
3
Добавлен:
20.11.2019
Размер:
619.52 Кб
Скачать

Задание 2. Использование элементов управления набора вкладок и набора страниц

В приложениях Windows вкладки часто используются для диалоговых окон. Использование вкладок позволяет поместить в диалоговом окне множество элементов управления, разбивая их на категории.

  • Элемент управления MultiPage (набор страниц) позволяет создать две или более страниц в форме. Каждая страница содержит собственный набор элементов управления, которые действуют независимо друг от друга. Это позволяет разделить сложную форму на разделы, сделав ее более наглядной для пользователя.

  • Элемент управления TabStrip (набор вкладок) позволяет использовать простой набор элементов управления для нескольких наборов данных. Набор вкладок применяется, если есть несколько наборов данных в форме, которая использует простой набор связанных элементов управления.

  • Д обавьте к форме элемент управления MultiPage. Можно переименовывать вкладки, а также добавлять страницы. Номер отображаемой страницы задается свойством Value (0 – для первой страницы и т.д.).

  • Н а второй странице содержится элемент управления TabStrip. Одна и та же пара текстовых полей будет использоваться для всех четырех телефонов, поскольку для каждого телефона задается номер и код. Данные о телефонах будут храниться в массиве (переменная Phones) из четырех строк и двух столбцов. Массив объявляется в разделе (Общая область). Таким образом, массив будет доступен только для процедур формы. Для элемента управления TabStrip есть процедура события, программируемая так, чтобы каждый раз при выборе пользователем вкладки, текстовые поля набора вкладок обновлялись. Процедура события Change содержит операторы для копирования значений массива Phones в текстовые поля в зависимости от того, какая вкладка набора выбрана. У элемента управления TabStrip также есть свойство Value, которое равно 0, если выбрана первая страница и т.д. На рабочем листе следует задать имя диапазону ячеек, в которые будут копироваться номера телефонов.

  • События для элементов формы программируются аналогично предыдущим примерам

Dim Phones(3, 1) As String

Private Sub P1_Change()

'Здесь проверяется обновление набора вкладок

'при переходе ко второй странице

Call TabStrip1_Change

End Sub

Private Sub MultiPage1_Change()

'Здесь проверяется обновление набора вкладок

'При переходе ко второй странице

Call TabStrip1_Change

End Sub

Private Sub UserForm_Initialize()

Dim RCount As Integer, CCount As Integer

For RCount = 0 To 3

For CCount = 0 To 1

Phones(RCount, CCount) =

Range("Номера").Cells(RCount + 1, CCount + 1).Text

Next CCount

Next RCount

Me.TextName.Text = Range("Имя").Text

Me.TextAddress.Text = Range("Адрес").Text

Me.TextCity.Text = Range("Город").Text

Private Sub TabStrip1_Change()

Dim Phones(3, 1) As String

'Обновление текстовых полей в соответствии с массивом Phone

AreaCode.Text = Phones(TabStrip1.Value, 0)

tPhone.Text = Phones(TabStrip1.Value, 1)

End Sub

Me.TextState.Text = Range("Область").Text

Me.TextZip.Text = Range("Индекс").Text

Me.MultiPage1.Value = 0

End Sub

Private Sub CancelButton_Click()

Me.Hide

End Sub

Private Sub OKButton_Click()

'Dim Phones(3, 1) As String

Dim RCount As Integer, CCount As Integer

Me.Hide

'Обновление диапазона номеров по масиву Phones

For RCount = 0 To 3

For CCount = 0 To 1

Range("Номера").Cells(RCount + 1, CCount + 1).Formula = Phones(RCount, CCount)

Next CCount

Next RCount

'Обновление остальных ячеек рабочего листа

Range("Имя").Formula = Me.TextName.Text

Range("Адрес").Formula = Me.TextAddress.Text

Range("Город").Formula = Me.TextCity.Text

Range("Область").Formula = Me.TextState.Text

Range("Индекс").Formula = Me.TextZip.Text

End Sub

Private Sub tPhone_Change()

'Dim Phones(3, 1) As String

'Обновление массива Phones при изменении ‘телефонного номера

Phones(TabStrip1.Value, 1) = tPhone.Text

End Sub

Private Sub AreaCode_Change()

'Dim Phones(3, 1) As String

'Обновление массива Phones при изменении кода области

Phones(TabStrip1.Value, 0) = AreaCode.Text

End Sub