Елементи керування HScrollBar і VScrollBar

На формі можна розміщувати горизонтальні і вертикальні смуги прокрутки за допомогою елементів управління HScrollBar і VScrollBar (рис.1 і рис.2).

Рис.1 Горизонтальна смуга прокрутки HScrollBar

Рис.2 Вертикальна смуга прокрутки VScrollBar 

Смуги прокрутки зустрічаються при роботі з документами програми Microsoft Word і іншими програмними продуктами, що працюють в середовищі Windows. Вони також використовуються в багаторядкових текстових полях і списках, в яких інформація цілком не поміщається. Елементи управління VScrollBar і HScrollBar відрізняються від смуг прокрутки, вбудованих в перераховані елементи, оскільки вони існують самостійно і застосовуються для елементів, або групи елементів, які не мають власних смуг прокрутки.

Рис.3. Елементи управління VScrollBar і HScrollBar

Розміщення смуги прокрутки і настройка властивостей

Основні властивості, що характеризують елементи управління типу VScrollBar і HScrollBar, представлені в таблиці 1

Таблиця 1. Основні властивості елементів управління типу VScrollBar і HScrollBar

 Властивість Призначення 
 LargeChange, SmallChange  Задають величини, на які буде зміщуватися повзунок при натисканні кнопкою миші на смузі або стрілкою прокрутки відповідно. За замовчуванням вони приймають значення 10 і 1
 Minimum, Maximum  Задають діапазон чисел, що вводяться за допомогою смуги прокрутки. За замовчуванням приймають значень 0 і 100 відповідно
 Value  Ціле число, що характеризує положення повзунка на смузі прокрутки. За замовчуванням встановлено значення 0, відповідне крайньому лівому або верхньому положенню

Після розміщення смуги прокрутки в формі необхідно властивостями Minimum і Maximum задати діапазон встановлюваних за допомогою даного елемента управління значень. Властивість Value визначає поточне положення повзунка на смузі прокрутки. Дані властивості можуть приймати тільки цілочисельні значення.

Примітка

Максимальне значення смуги прокрутки може бути досягнуто тільки програмним способом. Під час виконання програми досягається лише величина, що дорівнює Maximum-LargeChange + 1.

Значення властивості Value змінюється при переміщенні повзунка або натисканні миші на смузі прокрутки або стрілках, розташованих по краях смуги.

Для задання величини, на яку буде змінюватися значення властивості Value при натисканні клавіш-стрілок або натисканні миші на стрілках, що знаходяться по краях смуги прокрутки, використовується властивість SmallChange. За допомогою властивості LargeChange можна задати величину, на яку буде зміщуватися повзунок при натисканні кнопкою миші на смузі прокрутки або натисненні клавіш <Page Up> і <Page Down>. На практиці властивість SmallChange застосовують для плавної зміни значення властивості Value. Для властивості LargeChange встановлюють значення, рівне приблизно 10% від діапазону зміни властивості Value. Щоб повзунок пропорційно переміщався, необхідно для властивостей SmallChange і LargeChange задавати значення, кратні ширині (висоті) горизонтальної (вертикальної) смуги прокрутки.

Елементи управління типу VScrollBar і HScrollBar використовують події, наведені в таблиці 2.

Таблиця 2. Події елементів управління VScrollBar і HScrollBar

 Подія Призначення 
 Scroll  Дозволяє отримати значення властивості Value при переміщенні повзунка до виникнення події ValueChanged
 ValueChanged  Подія виникає після переміщення повзунка в момент відпускання кнопки миші або після клацання мишею в області смуги прокрутки або на кнопках із зображеннями стрілок

Приклад використання смуг прокрутки

Розглянемо невеликий приклад використання в формі смуг прокрутки. Для цього скористаємося елементами управління PictureBox і HScrollBar. Значення горизонтальної смуги допоможе змінювати розташований на формі малюнок (рис. 4).

Рис.4. Використання елемента управління HScrollBar

Виконайте наступні дії:

1. Перетягніть на форму елемент управління PictureBox. Задайте значення Zoom для властивості SizeMode, щоб зображення цілком розташовувалося в об'єкті PictureBox і при цьому зберігало свої пропорції.

2. Розмістіть на формі горизонтальну смугу прокрутки, скориставшись кнопкою HScrollBar на панелі елементів керування. Властивості LargeChange надайте значення 2.

3. Відкрийте вікно редактора коду. Задайте одну глобальну змінну:

     Dim files() As System.IO.FileInfo

4. Створіть процедуру обробки події Load форми для задання початкових даних. Додайте в тіло процедури наступний код:

    Private Sub Form1_Load(ByVal sender As System.Object, _

                           ByVal e As System.EventArgs) _

                           Handles MyBase.Load

        ' Задаємо папку, в якій знаходяться зображення

        Dim dirInfo As New System.IO.DirectoryInfo("C:\Users\Nik\Pictures\Toolbar")

        ' Отримуємо список зображень

        files = dirInfo.GetFiles("*.png")

        ' Задаємо максимальне значення смуги прокрутки

        Me.HScrollBar1.Maximum = files.Length

        ' Задаємо перше зображення

        Call Me.HScrollBar1_ValueChanged(sender, e)

    End Sub

5. Створіть процедуру обробки події ValueChanged, що виникає після переміщення повзунка в момент відпускання кнопки миші, а також після клацання мишею в області смуги прокрутки або на кнопках із зображеннями стрілок. Додайте в тіло процедури наступні рядки:

    Private Sub HScrollBar1_ValueChanged(ByVal sender As System.Object, _

                                         ByVal e As System.EventArgs) _

                                         Handles HScrollBar1.ValueChanged

        Dim file As System.IO.FileInfo = files.GetValue(Me.HScrollBar1.Value)

        Me.PictureBox1.Image = System.Drawing.Image.FromFile(file.FullName)

    End Sub

6. Запустіть форму на виконання. Натискаючи по черзі кнопки зі стрілками смуги прокрутки, можна спостерігати зміну малюнка.