Книга: Программирование КПК и смартфонов на .NET Compact Framework
Увеличение ширины выпадающего списка ComboBox
Увеличение ширины выпадающего списка 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);
private void Form1_Load(object sender, EventArgs e) {
comboBox1.Items.Add("Раз");
comboBox1.Items.Add("Два");
comboBox1.Items.Add("Три");
comboBox2.Items.Add("Длинный текст");
comboBox2.Items.Add("Очень длинный текст");
comboBox2.Items.Add("Hy очень длинный текст");
// Устанавливаем желаемую ширину
SendMessage(comboBox2.Handle, CB_SETDROPPEDWIDTH, 200, 0);
// Получим ширину выпадающего окна
int retval = SendMessage(comboBox2.Handle, CB_GETDROPPEDWIDTH, 0, 0);
this.Text = retval.ToString();
}
На форме надо разместить два элемента ComboBox
. Один из них будет стандартным. А второй элемент обработает сообщение CB_SETDROPPEDWIDTH
со значением второго параметра 200. В результате выпадающий список будет в ширину занимать 200 пикселов.
После запуска программы сначала надо обратить внимание на работу первого комбинированного окна (рис. 4.4). Оно ведет себя стандартным образом.
Рис. 4.4. Стандартный размер выпадающего списка
Теперь нужно перейти ко второму комбинированному окну. У него размер выпадающего списка увеличился, что позволяет увидеть весь текст (рис. 4.5).
Рис. 4.5. Увеличенный размер выпадающего списка у ComboBox
- Текстовые поля
- Управление полосой прокрутки
- Многострочный текст в кнопке
- Увеличение ширины выпадающего списка ComboBox
- ListBox
- ListView
- Создание кнопки, содержащей изображение
- Список с расширенными возможностями
- Текстовое поле для ввода чисел
- Сортировка элементов ListView
- Использование элемента DateTimePicker
- Увеличение глубины рекурсии процедур и триггеров
- Создание списка
- Добавление, изменение и удаление элементов списка
- Восстановление элементов списка из Корзины
- Добавление, изменение и удаление столбцов списка
- Сортировка и фильтрация списка
- Добавление и изменение представления списка
- Удаление списка
- Добавление списка необходимых предметов
- Практическая работа 50. Сортировка списка данных
- Практическая работа 51. Отбор записей из списка с помощью фильтра
- Пример 12-39. Использование seq для генерации списка аргументов цикла for