Поведение стандартного контрола 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
1 отзыв на “Прощайте, глючные Textboxы!”
Тест