Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
Рис. 7.1. Пример приложения, иллюстрирующего различные варианты организации обратной связи с пользователем
Листинг 7.3. Демонстрация трех различных уровней организации обратной связи с пользователем
//Поместить надписи на кнопках
private void Form1_Load(object sender, System.EventArgs e) {
button1.Text = "Плохая обратная связь";
button2.Text = "Хорошая обратная связь";
button3.Text = "Улучшенная обратная связь";
}
//----------------------------------------
//Пример слабых интерактивных возможностей интерфейса:
// - Визуальная индикация начала выполнения работы отсутствует
// - Визуальная индикация окончания выполнения работы отсутствует
// - Пользовательский интерфейс не способен к отклику во время работы
// - 0 завершении выполнения задачи пользователь вынужден только догадываться
//----------------------------------------
private void button1_Click(object sender, System.EventArgs e) {
//Имитировать выполнение работы путем создания паузы
//продолжительностью 4 секунды
System.Threading.Thread.Sleep(4000);
}
//----------------------------------------
//Пример лучших интерактивных возможностей интерфейса:
// + Визуальная индикация начала выполнения работы
// (появление курсора ожидания)
// + Визуальная индикация окончания выполнения работы
// (исчезновение курсора ожидания)
// - Пользовательский интерфейс не способен к отклику во время работы
// + По завершении выполнения задачи конечный пользователь узнает об этом,
// а пользовательский интерфейс восстанавливает способность к отклику
//----------------------------------------
private void button2_Click(object sender, System.EventArgs e) {
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
//Имитировать выполнение работы путем создания паузы
//продолжительностью 4 секунды
System.Threading.Thread.Sleep(4000);
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
}
//----------------------------------------
//Пример еще лучших интерактивных возможностей интерфейса:
// + Визуальная индикация начала выполнения работы // (появление курсора ожидания)
// + Отображение дополнительного текста, сообщающего пользователю // о том, что происходит
// + Визуальная индикация окончания выполнения работы // (исчезновение курсора ожидания)
// - Пользовательский интерфейс не способен к отклику в процессе работы
// + По завершении выполнения задачи конечный пользователь узнает об этом,
// а пользовательский интерфейс восстанавливает способность к отклику
// + Текстовые сообщения информируют пользователя о том, что происходит
//----------------------------------------
private void button3_Click(object sender, System.EventArgs e) {
//Предоставить пользователю текст, информирующий его обо всем происходящем
label1.Text = "Ждите! Работа выполняется!";
//Заставить интерфейс обновить текст
//(иначе он сделает это только тогда, когда будет перерисовывать сообщение,
//a это может произойти и после выхода из данной функции)
label1.Update;
//Отобразить курсор ожидания
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
//Имитировать выполнение работы путем создания паузы
//продолжительностью 2,8 секунды
System.Threading.Thread.Sleep(2800);
//Необязательное дополнительное обновление состояния
label1.Text = "Ждите! Работа близка к завершению!";
label1.Update;
//Имитировать выполнение работы путем создания паузы
//продолжительностью 1,2 секунды
System.Threading.Thread.Sleep(1200);
//Известить пользователя текстовым сообщением о завершении работы
//(текст обновляется всякий раз, когда ПИ выполняет обычное
//обновление экрана)
label1.Text = "Работа успешно завершена!";
//Избавиться от курсора ожидания
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
}
Разумеется, лучше всего, если пользовательский интерес никогда не теряет способности к отклику, однако для сравнительно коротких периодов задержки или случаев, когда работа должна выполняться в синхронном режиме, существует много косметических приемов, которые обеспечивают создание для пользователей комфортных условий работы с приложением и сводят влияние раздражающих факторов к минимуму.
Поделиться:
Популярные книги
Мишень
3. Агенты ФБР
Любовные романы:
остросюжетные любовные романы
8.32
рейтинг книги
Кодекс Охотника. Книга XXXIV
34. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Третий Генерал: Том III
2. Третий Генерал
Фантастика:
попаданцы
рпг
аниме
5.00
рейтинг книги
Гримуар темного лорда IV
4. Гримуар темного лорда
Фантастика:
фэнтези
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Главный рубильник. Расцвет и гибель информационных империй от радио до интернета
Деловая литература:
о бизнесе популярно
5.00
рейтинг книги
Кодекс Охотника. Книга VIII
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга ХХХ
30. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Искушение генерала драконов
2. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Потомок бога
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Кодекс Охотника
1. Кодекс Охотника
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Лекарь Империи 4
4. Лекарь Империи
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Бастард Императора. Том 4
4. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эпоха Опустошителя. Том V
5. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXII
22. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
5.00