Прощайте, глючные Textboxы!

Поведение стандартного контрола Textbox при перемещении по нему влево-вправо, при удалении символов, при нажатии Home и End - может довести пользователя до белого каления (ИМХО). Предложенный код в методе KeyPress заставляет данный контрол работать правильнее.
lparameters nkeycode, nshiftaltctrl

do case

case nkeycode=19 and nshiftaltctrl=0
nodefault
if this.selstart>0
dodefault(nkeycode, nshiftaltctrl)
else
if this.sellength>0
this.sellength=0
endif
endif

case nkeycode=4 and nshiftaltctrl=0
nodefault
if this.sellength>0
this.selstart=this.selstart+this.sellength
else
if this.selstart=this.maxlength-1
this.selstart=this.maxlength
else
if this.selstart#this.maxlength
dodefault(nkeycode, nshiftaltctrl)
endif
endif
endif

case INLIST(nkeycode,1,6) and (nshiftaltctrl=0)
*** Эти команды кажутся бессмысленными, однако убирают глючное перескакивание курсора при нажатии клавиши {End} или {Home} ***
nodefault
dodefault(nkeycode, nshiftaltctrl)

case nkeycode=127
nodefault
if this.selstart>0
dodefault(nkeycode, nshiftaltctrl)
else
if this.sellength>0
this.seltext=''
endif
endif
endcase

Автор: Er0p
0

Автор публикации

не в сети 1 год

admin

0
Комментарии: 0Публикации: 109Регистрация: 10-12-2000
Оставить комментарий
Авторизация
*
*
Генерация пароля