Елементи інтерфейсу: Рядок стану

Рядок стану - це спеціальний елемент вікна, що складається з декількох панелей для відображення поточної інформації про стан та режим роботи програми.

При роботі з різними додатками Windows часто використовується рядок стану. Наприклад, переглядаючи текст у Microsoft Word, по рядку стану можна визначити номер сторінки.

 

Рис.1. Рядок стану програми Microsoft Word

Для додавання рядка стану в форму використовується елемент управління StatusStrip. За замовчуванням рядок стану розміщується в нижній частині вікна програми. Щоб змінити його положення, необхідно скористатися властивістю Dock, яка може приймати одне із значень перерахування DockStyle: Bottom (Знизу), Fill (На всю форму), Left (Зліва), None (В будь-якому місці форми), Right (Праворуч) і Top (Зверху).

Рядок стану складається з набору елементів, але спочатку він не містить жодного. Для додавання, видалення елементів рядка стану, а також налаштування їх властивостей використовується діалогове вікно Items Collection Editor (Редактор списку елементів) (рис. 2), що відкривається при виборі властивості Items елемента управління StatusStrip.

Список, що розкривається Select item and add to list below (Виберіть елемент і додайте в розташований нижче список) цього діалогового вікна містить перелік можливих елементів, які можна додати на рядок стану: індикатор виконання, кнопка, текст.

Поле Members (Компоненти) діалогового вікна Items Collection Editor (Редактор списку елементів) містить список всіх елементів цього рядка стану. За допомогою кнопки Add (Додати) можна додати нові елементи на рядок стану.

Рис. 2. Діалогове вікно Items Collection Editor

У правій частині діалогового вікна Items Collection Editor (Редактор списку елементів) є перелік властивостей виділеної в полі Members (Компоненти) панелі. Список властивостей залежить від обраного елемента.

Приклад створення рядка стану

Додамо в додаток MdiExample рядок стану, що показує текст підказки, поточні дату і час. Для цього відкрийте програму і виконайте наступні дії:

1. Додайте в батьківську форму елемент управління StatusStrip, двічі клацнувши мишею кнопку StatusStrip (Рядок стану) панелі інструментів. Після появи в формі рядка стану надайте йому ім'я ssStatusBar.

2. Відкрийте вікно властивостей Properties (Властивості) рядка стану та виберіть властивість Items. Відкриється діалогове вікно Items Collection Editor (Редактор списку елементів), в якому за допомогою списку Select item and add to list below (Виберіть елемент і додайте в розташований нижче список) і кнопки Add (Додати) додайте в рядок стану три елементи StatusLabel і назвіть їх ssrText, ssrDate і ssrTime.

3. Для властивості Text панелі ssrText задайте значення Текст підказки.

4. Для того щоб час і дата постійно оновлювалися при роботі додатка, перетягніть на батьківську форму елемент управління Timer і назвіть його timer.

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

        ssrDate.Text = System.DateTime.Today.ToLongDateString

        ssrTime.Text = System.DateTime.Now.ToLongTimeString

6. Для активізації таймера додайте в процедуру обробки Load батьківського вікна рядок:

        timer.Enabled = True

Для дезактивація таймера в процедуру обробки події mnuFileExit_Click додайте наступний рядок:

        timer.Enabled = False

На рис. 3. зображений щойно створений рядок стану.

Рис. 3. Рядок стану програми

Змінений програмний код батьківської форми матиме вигляд:

Public Class frmParentMdi

    Private Sub NewChildForm()

        Dim f As New frmChildMdi

        f.MdiParent = Me

        f.Show()

    End Sub

    Private Sub mnuFileNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _

                                Handles mnuFileNew.Click

        NewChildForm()

    End Sub

    Private Sub mnuFileExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _

                                Handles mnuFileExit.Click

        Me.Close()

        timer.Enabled = False

    End Sub

    Private Sub timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) _

                        Handles timer.Tick

        ssrDate.Text = System.DateTime.Today.ToLongDateString

        ssrTime.Text = System.DateTime.Now.ToLongTimeString

    End Sub

    Private Sub frmParentMdi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _

                                Handles MyBase.Load

        timer.Enabled = True

    End Sub

End Class