| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Как программно убрать горизонтальную прокрутку? |
| Автор: korob2001 11.12.2004, 21:05 | ||
| Привет! Возникла такая проблема: Есть многострочное текстовое поле txtField. Пераметр ScrollBars = Both. После пользователь должен иметь возможность изменить его на Vertical. Пытаюсь сделать так:
Получаю ошибку. Что данный параметр доступен только для чтения. Как быть? |
| Автор: Naghual 12.12.2004, 10:41 |
| Точно. При выполнении программы это свойство доступно только для чтения. Его можно изменять только в режиме разработки. Но можно это ограничение обойти - при помощи АПИ. |
| Автор: korob2001 12.12.2004, 13:12 | ||
Если можно, поточнее. Вобщем посмотреть, то чего хочу я добиться, можно запустив Блокнот, затем нужно выбрать команду "Перенос по словам", меню "Формат". |
| Автор: Naghual 12.12.2004, 13:50 | ||
Извольте. (Авторство сохранено)
Тебе необходимо только установить необходимую константу при вызове функции. |
| Автор: korob2001 12.12.2004, 14:17 |
| Naghual - большое спасибо. |
| Автор: Naghual 12.12.2004, 14:19 |
| Всегда пожалуйста. |
| Автор: korob2001 14.12.2004, 11:29 |
| Всё работает, только вот переноса по словам так и нет. |
| Автор: Akina 14.12.2004, 11:47 | ||
Попробуй Repaint/Refresh... должОн быть... |
| Автор: Naghual 14.12.2004, 11:55 |
| Есть такое решение: 1. При разработке формы, установи ScrollBars в Horizontal. 2. В Form_Load, через АПИ, установи ScrollBars в Both. Ну а потом уже по программе. |
| Автор: korob2001 15.12.2004, 04:39 | ||||||
Не понял, где должен быть? Если не трудно, поясни.
ОК. При разработке устанавливаю ScrollBars в Horizontal. Затем в процедуре Form_Load устанавливаю ScrollBars в Both. Всё нормально проходит и в конечном итоге TextBox с двумя полосами прокрутки. Пробую напечатать текст в текстовом поле, текст как положено работает, т.е. не переносится на следующую строку когда достигает правого края текстового поля. Пока всё нормально, но когда я жму кнопку "Перенос по словам", то горизонтальная полоса прокрутки исчезает, но переноса по словам так и нет, тоесть строка как была длинной, так и осталась. Вот процедура обработчика события Click кнопки "Перенос по словам
Где: myHz - константа для горизонтальной полосы прокрутки. Просто все контанты, которые не начинаются с vb, я делаю с начальными символами my. Может я делаю что-то не так в обработчике Click? |
| Автор: Akina 15.12.2004, 11:07 |
| Хочешь идиотское решение? Делаешь ДВА контрола - один с горизонтальной полосой прокрутки и переносом, второй - без. По мере необходимости копируешь контент, устанавливаешь куда надо курсор и переключаешь визибилити. |
| Автор: korob2001 15.12.2004, 14:39 | ||
Да, решение не самое лучшее, но всё же. На чём написан блокнот, не на VB? |
| Автор: Naghual 15.12.2004, 15:38 | ||
Как тебе такой код? ЗЫ: А у Akina отличное решение. |
| Автор: Naghual 16.12.2004, 15:52 |
| korob2001 Ну как успехи? |
| Автор: korob2001 16.12.2004, 21:33 |
| Результат тот же. |