Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форматирование TEXTBOX-а / 2 сообщений из 2, страница 1 из 1
25.04.2007, 09:28
    #34485257
Scorpio_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форматирование TEXTBOX-а
Добрый день. Есть такая проблема, на форму есть TEXTBOX, в свойствах MAXLENGHT я ему указал 9, АLIFNMENT = LEFT, но когда я запускаю приложение и если мышкой нажимаю в этом TEXTBOX-е в середеине, то оттуда и начинается ввод символов, но не 9 как указал, а меньше. А что бы получить все девять то необходимо переместить курсор в крайнее левое положение, что не очень удобно.
Как мне сделать так, чтобы при нажатии мышкой на TEXTBOX, у меня курсор был крайнем левом положении, даже если нажимали дважды.
...
Рейтинг: 0 / 0
25.04.2007, 23:23
    #34488161
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Форматирование TEXTBOX-а
Корректного решения не получилось потому, что событие 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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Форматирование TEXTBOX-а / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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