В этом примере для сравнения использовались две кнопки. На каждой из них размещен достаточно длинный текст (рис. 4.2).
Рис. 4.2.
Вид кнопок в процессе программирования
При загрузке формы выполняется изменение стиля для первой кнопки
butMultiline
, а вторая кнопка остается без изменений. После запуска приложения можно заметить, что длинный текст в первой кнопке разбивается на две строки и полностью умещается в границах кнопки. Во второй кнопке слова обрезаются, и текст просто нельзя прочитать (рис. 4.3).
Рис. 4.3. Создание многострочного текста на кнопке
ВНИМАНИЕ
Данный пример был написан еще для .NET Compact Framework 1.0. В .NET Compact Framework 2.0 нет надобности вызывать функцию GetCapture для получения дескриптора hWnd, так как теперь поддерживается свойство Control.Handle.
Увеличение ширины выпадающего списка ComboBox
Выпадающий список у комбинированного окна равен ширине самого комбинированного окна
ComboBox
. Но можно обойти это ограничение с помощью неуправляемого кода, как показано в листинге 4.4.
Листинг 4.4
/// <summary>
/// Сообщение, получающее размеры выпадающего списка
/// комбинированного окна
/// </summary>
const int CB_GETDROPPEDWIDTH = 0x015f;
/// <summary>
/// Сообщение, устанавливающее размеры выпадающего списка
/// комбинированного окна
/// </summary>
const int CB_SETDROPPEDWIDTH = 0x0160;
[DllImport("coredll.dll")]
static extern int SendMessage(IntPtr hwnd, int msg, int wParam, int lParam);