Текстовые поля довольно часто используются в приложениях. В принципе, они достойно справляются с поставленными задачами, имея необходимую функциональность. Предположим, что на форме расположены несколько текстовых полей для ввода информации. Для улучшения удобства использования применяется следующий трюк: после того как пользователь ввел необходимые данные в текстовом поле и нажал клавишу
Enter
, фокус переходит к следующему текстовому полю. Код, реализующий подобный механизм работы, приведен в листинге 4.1.
При отображении большого текста пользователь может применять полосу прокрутки для перемещения по тексту. Разработчик может использовать сообщение
WM_VScroll
для программного управления полосой прокрутки. Например, можно использовать этот механизм для создания эффекта автоматической прокрутки текста.
Для иллюстрации примера нужно расположить на форме текстовое поле и отобразить в нем какой-нибудь длинный текст. В примере используется отрывок из произведения А. Пушкина «Дубровский». Также на форме надо расположить четыре кнопки, при помощи которых пользователь сможет управлять отображением текста, прокручивая его на одну строчку или страницу вниз и вверх. В листинге 4.2 приведен код, который реализует описанный способ отображения текста.
Листинг 4.2
[DllImport("coredll.dll")]
extern static int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
/// <summary>
/// Сообщение Windows для работы с полосой прокрутки