ПОНЯТНО О Visual Basic NET (том 3)




Полосы прокрутки (ScrollBars) и ползунок (TrackBar)


Для определенности поговорим о горизонтальной полосе прокрутки (HScrollBar). Все сказанное будет полностью относиться и к вертикальной полосе (VScrollBar).

Поместите на форму горизонтальную полосу (вы можете ее видеть на Рис. 18.4). Запустите проект. Потаскайте бегунок мышкой или клавишами перемещения курсора. Вы, безусловно, знакомы с полосой прокрутки по другим приложениям Windows. Она используется в основном для того, чтобы прокручивать информацию в окне или же просто менять значение какой-нибудь величины.

Задача: Изменять с помощью полосы прокрутки значение переменной величины W в пределах от 20 до 80. При щелчке по стрелкам полосы или по клавишам перемещения курсора на клавиатуре значение переменной должно меняться на 4, а при щелчке по полосе слева или справа от бегунка значение переменной должно меняться на 10. После запуска проекта бегунок должен стоять на отметке 47.

Ваши действия: Создайте проект и поместите на форму метку и горизонтальную полосу прокрутки. Ее имя HScrollBar1. Установите в соответствии с числами из задания следующие свойства полосы:

  • Minimum                            -              20
  • Maximum                           -              80
  • SmallChange                    -              4
  • LargeChange                    -              10
  • Value                                   -              47
  • Вы можете сделать это в режиме проектирования или в коде – в процедуре Form1_Load.  Проверьте правильность работы полосы, запустив программу:

    Private Sub HScrollBar1_Scroll(ByVal sender As Object,  ByVal e As ScrollEventArgs) Handles HScrollBar1.Scroll

            Dim W As Integer

            W = HScrollBar1.Value

            Label1.Text = W

    End Sub

    Важное замечание: Вам никак не удастся вручную добраться до 80. Максимум, чего вы способны достигнуть, это 71. Таков закон работы полос прокрутки в VB – ближе, чем на значение LargeChange - 1, вы вручную до максимума не доберетесь (а в коде можно). Чтобы решить проблему, увеличьте немного Maximum или уменьшите до единицы LargeChange.




    Содержание  Назад  Вперед