Программирование мобильных устройств на платформе .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;
}
Разумеется, лучше всего, если пользовательский интерес никогда не теряет способности к отклику, однако для сравнительно коротких периодов задержки или случаев, когда работа должна выполняться в синхронном режиме, существует много косметических приемов, которые обеспечивают создание для пользователей комфортных условий работы с приложением и сводят влияние раздражающих факторов к минимуму.
Поделиться:
Популярные книги
Пески времени
Детективы:
триллеры
9.02
рейтинг книги
Родословная. Том 5
5. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Я все еще князь. Книга XXI
21. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IХ
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Гром Раскатного. Том 1
1. Штормовой Предел
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Императора VI
6. Кодекс Императора
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Бастард Императора. Том 9
9. Бастард Императора
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Поход
4. Ермак
Фантастика:
боевая фантастика
альтернативная история
6.25
рейтинг книги
Темный Лекарь 9
9. Темный Лекарь
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
История Шотландии с древнейших времен до флодденского сражения 1513 года.
Научно-образовательная:
история
5.00
рейтинг книги
Кодекс Охотника. Книга XVII
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
И в аду есть герои
5. Тайный Город
Фантастика:
боевая фантастика
9.19
рейтинг книги
Наномашины, наследник! Том 9
9. Первый среди карапузов
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 12
12. Антимаг. Вне системы
Фантастика:
фэнтези
5.00