Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет: Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.
Как активировать код? |
Стандартные элементы управления
Событие Scroll генерируется в любом случае взаимодействия пользователя с полосой прокрутки, даже если тот пытается выйти за пределы диапазона. Это событие несет в себе намного больше информации о состоянии полосы прокрутки и действиях пользователя. Если мы подпишемся на это событие, то в обработчик будет передаваться объект ScrollEventArgs с информацией, которая находится в свойствах:
- OldValue - целое число, равное значению Value перед квантом взаимодействия пользователя с полосой прокрутки (только для чтения)
- NewValue - целое число, которое примет Value после того, как завершится обработка очередного события Scroll. Если в обработчике события Scroll прописать NewValue=OldValue, то полоса прокрутки не будет реагировать на действия пользователя, поскольку всегда будет возвращаться в исходное состояние. Свойство разрешено читать и писать. Если свойство NewValue изменять программно, то событие ValueChanged не генерируется, поскольку Value напрямую не меняется
- ScrollOrientation - переменная типа перечисления, которая может иметь одно из двух значений: HorizontalScroll и VerticalScroll. Доступно только для чтения и позволяет различить в общем обработчике события Scroll двух объектов HScrollBar и VScrollBar, от какого именно в обработчик поступила информация
- Type - это свойство является объектом перечисления ScrollEventType и может иметь одно из следующих 9 значений:
- SmallDecrement = 0 | Мышь: | пользователь щелкнул на верхней (левой) кнопке со стрелкой |
Клавиатура: | пользователь нажал "стрелку вверх" ("стрелку влево") | |
- SmallIncrement = 1 | Мышь: | пользователь щелкнул на нижней (правой) кнопке со стрелкой |
Клавиатура: | пользователь нажал "стрелку вниз " ("стрелку вправо") | |
- LargeDecrement = 2 | Мышь: | пользователь щелкнул на верхней (левой) области между бегунком и кнопкой со стрелкой |
Клавиатура: | пользователь нажал клавишу PageUp | |
- LargeIncrement = 3 | Мышь: | пользователь щелкнул на нижней (правой) области между бегунком и кнопкой со стрелкой |
Клавиатура: | пользователь нажал клавишу PageDown | |
- ThumbPosition = 4 | Мышь: | пользователь отпустил бегунок |
- ThumbTrack = 5 | Мышь: | пользователь захватил бегунок (или перемещает его) |
- First = 6 | Клавиатура: | пользователь нажал клавишу Home |
- Last = 7 | Клавиатура: | пользователь нажал клавишу End |
- EndScroll = 8 | Прокрутка завершена |
Если операционная система сильно загружена и скролируется большой объем информации, то часть событий полосы прокрутки может игнорироваться, но обязательно будет перехвачено последнее событие Scroll с признаком Type=EndScroll и значение Value станет равным NewValue.
Ниже приведен код программы с заблокированной полосой прокрутки ("Хоть видит око, но зуб не ймет" - Крылов, басня)
using System; using System.Drawing; using System.Windows.Forms; namespace Test { // Класс приложения class MyClass : Form { // Создаем вертикальную полосу прокрутки, которую // потом настроим и будем отслеживать VScrollBar vScroll = new VScrollBar(); public MyClass() // Конструктор { // Текст заголовка окна this.Text = "Заблокированная прокрутка"; // Привязываем к родителю-форме vScroll.Parent = this; // Устанавливаем параметры привязки полосы прокрутки vScroll.Height = this.ClientSize.Height; vScroll.Location = new Point(this.ClientSize.Width - vScroll.Width, 0); // Регистрируем событие Scroll vScroll.Scroll += new ScrollEventHandler(vScroll_Scroll); } void vScroll_Scroll(object sender, ScrollEventArgs e) { // Запрещаем изменение Value e.NewValue = e.OldValue; } // На случай изменения размеров формы protected override void OnSizeChanged(EventArgs e) { // Пересчитываем параметры привязки полосы прокрутки vScroll.Height = this.ClientSize.Height; vScroll.Location = new Point(this.ClientSize.Width - vScroll.Width, 0); } } // Запуск class Program { static void Main() { Application.EnableVisualStyles(); Application.Run(new MyClass()); } } }Листинг 15.3 . Блокировка полосы прокрутки в обработчике события Scroll
Попробуйте запустить эту программу - полоса прокрутки не реагирует на действия пользователя.