powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форматирование TEXTBOX-а
2 сообщений из 2, страница 1 из 1
Форматирование TEXTBOX-а
    #34485257
Scorpio_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Есть такая проблема, на форму есть TEXTBOX, в свойствах MAXLENGHT я ему указал 9, АLIFNMENT = LEFT, но когда я запускаю приложение и если мышкой нажимаю в этом TEXTBOX-е в середеине, то оттуда и начинается ввод символов, но не 9 как указал, а меньше. А что бы получить все девять то необходимо переместить курсор в крайнее левое положение, что не очень удобно.
Как мне сделать так, чтобы при нажатии мышкой на TEXTBOX, у меня курсор был крайнем левом положении, даже если нажимали дважды.
...
Рейтинг: 0 / 0
Форматирование TEXTBOX-а
    #34488161
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Корректного решения не получилось потому, что событие Click выполняется после событий получения фокуса When или GotFocus. Т.е. если переводить указатель при получении фокуса объектом, то последующее событие Click все-равно сдвинет указатель в то место, над которым расположен указатель мыши.

Решение есть, но не очень корректное. Суть в том, что надо как-то определить, является ли нажатие мыши (срабатывание события Click) первым событием в объекте. Если это первое событие, то переводим указатель в начало.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
* В событии TextBox.When или TextBox.GotFocus фиксируем вход в объект,
* устанавливая флаг
This.Tag = "1"

* В событии TextBox.Click анализируем, является это первым событием после входа
IF This.tag="1" 
	This.Tag=""
	* Если при этом указатель не в начале, то перемещаю его
	IF This.SelStart> 0 
		This.SelStart =  0 
	ENDIF
ENDIF

* Дублирую сброс флага в событии KeyPress (нажатие клавишь)
LPARAMETERS nKeyCode, nShiftAltCtrl
if This.tag="1" 
	This.Tag=""
endif

Решение не очень хорошо тем, что подобные "выкрутасы" слишком сложные и не всегда дают гарантированный эффект. Например, если вошли в объект при помощи клавиатуры и тут же пытаемся перейти мышкой на другое место в том же объекте, то указатель будет сброшен в начало. Ведь не было никаких событий, сбросивших значение флага.

Лучше вообще не пытаться как-то управлять указателем. Оставить как есть. Думаю, пользователи быстро привыкнут.

MaxLength и Alignment на положение указателя вообще никак не влияют.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форматирование TEXTBOX-а
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]