1

Konu: KUTUCUKLARDA BACK SPACE(GERİ SİLME) TUŞU İLE KUTUCUKTAN ÇIKMASINI ENGE

Üstadlar,
Ekranda bulunan text box kutucuklarından bcak space tuşu ile silme yaptığımda kutucuktan çıkıyor. Yazılan bir yazıyı bu kutucuktan silerken
back space tuşu ile.  imleç in bu kutuda kalmasını hangi komutla sağlayabilirim. Sorunumu anlatabildm umarım.

Back space ile silince diğer kutucuğa geçmesini istemiyorum.

2

Re: KUTUCUKLARDA BACK SPACE(GERİ SİLME) TUŞU İLE KUTUCUKTAN ÇIKMASINI ENGE

set confirm on komutu ile bunu sağlayabilirsin. default olarak set confirm off

3

Re: KUTUCUKLARDA BACK SPACE(GERİ SİLME) TUŞU İLE KUTUCUKTAN ÇIKMASINI ENGE

textbox.valid

Visual Fox Pro
IF LASTKEY()=127

  RETU 0  && textboxta kal
ELSE
  RETU 1   && sonraki kontrole veya -1 önceki kontrole git
ENDI
VFP9 SP2

4

Re: KUTUCUKLARDA BACK SPACE(GERİ SİLME) TUŞU İLE KUTUCUKTAN ÇIKMASINI ENGE

Ben de benzer bir sorunla karşılaşmıştım.
Benim bir sorunum da textbox'ta imlecin sona dayanmaması idi. Yani kullanıcı sona gelindiğini anlayamıyordu (normali böyle zaten), textbox'ın Maxlength propertisini gerekenden bir fazla yaptım ve keypress event'ine aşağıdaki kodu yazdım. benim tüm textbox'larım böyle. Buradaki kod ile Esc tuşuna basıldığında girilen metnin silinmesi ve Backspace yanı sıra Home ve End ile de focüsün başka bir kontrole geçmesine engel olunuyor.
Çözüm fikrini tabii ki Çetin'den almıştım.  Üzerinde değişiklikler yaptım ve son hali şöyle:

Visual Fox Pro
LPARAMETERS nKey, nn

LOCAL iX
iX=LEN(RTRIM(This.Value))
IF nKey>=0x20 AND nKey!=127 AND iX=This.MaxLength-1
    NODEFAULT
ENDIF
IF This.SelStart=0 AND (nKey=19 OR nKey=1) OR This.SelStart=This.MaxLength-1 AND nKey=4
    NODEFAULT
ENDIF
IF nKey=6 AND This.SelStart=iX
   NODEFAULT
ENDIF
IF nKey=27
    NODEFAULT
ENDIF

5

Re: KUTUCUKLARDA BACK SPACE(GERİ SİLME) TUŞU İLE KUTUCUKTAN ÇIKMASINI ENGE

Kodda son 3 satırı (sana en çok lazım olanı) atlamışım.

Visual Fox Pro
IF nKey=127 AND This.SelStart=0

    NODEFAULT
ENDIF