Konu: textbox a kısayol
Merhaba,
Bi formda herhangi bir textbox a menülerdeki gibi kısayol (shortcut) yapmanın sizce ensağlıklı yolu nedir ?(örneğin alt+a 'ya bastığımda istediğim textbox a gitsin..)
Şimdiden teşekkürler
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
Merhaba,
Bi formda herhangi bir textbox a menülerdeki gibi kısayol (shortcut) yapmanın sizce ensağlıklı yolu nedir ?(örneğin alt+a 'ya bastığımda istediğim textbox a gitsin..)
Şimdiden teşekkürler
Textbox'lara kisa yol yapmanin dogrudan bir yolu yok. Form.Keypress ile kontrol etmeyi deneyebilirsin ancak hem kulfetli hem de "Alt"+Tus kombinasyonlari keypress tarafindan yakalanip islenmiyor.
Basit bir yol textbox yerine label'lari kisayol olarak kullanmak. Ornegin:
Adi: [Textbox Ad]
Soyadi: [Textbox Soyad]
gibi bir formun varsa, Alt+A ile ad textboxina, Alt+S ile de soyad textboxina gitmesini istedigini varsayalim (ilk harf olmak zorunda degil soyad icin istersen 'o' yu kullan).
O zaman label'larin caption'lari:
\<Adi
\<Soyadi
ve tabindex siralamasi Adi: [Textbox Ad] Soyadi: [TextBox soyad] seklinde (yani her label tabindex'de hemen ilgili textboxindan once).
\< isareti runtime'da komsu harfin alti cizili cikmasini sagliyor (accelarator key) ve alt+harf ile o label'a gidiliyor. Label'lar focus alamadiklarindan focus otomatikman tabindex siralamasinda focus alabilen sonraki ilk kontrole gidiyor. Neyse lafla anlatmak her zaman zor:)
Public oForm
oForm = createobject('myForm')
oForm.Show()
define class myForm as Form
add object lblAd as label with left=10,top=10,width=100,Caption="\<Ad"
add object txtAd as Textbox with left = 115,top=10
add object lblSoyad as label with left=10,top=40,width=100,Caption="\<Soyad"
add object txtSoyad as Textbox with left = 115,top=40
add object lblDogTar as label with left=10,top=70,width=100,Caption="D\<ogum Tarihi"
add object txtDogTar as Textbox with left = 115,top=70, Value = {}
enddefine
çetin teşekkürler aradığım buydu bu işimi görür:)
Aslında Textbox'lara kısa yol yapmanin doğrudan bir yolu var.
ON KEY LABEL ile TexBox'lara kısayol yapabilirsin.
Form1 isimli bir formun, üzerindede Text2 isimli bir TexBox un olsun.
Form1 in Load methoduna.
ON KEY LABEL ALT+A Form1.Text2.SetFocus
Form1 in UnLoad methoduna.
ON KEY LABEL ALT+A ON KEY
Komutlarını yazarsan, ALT+A ya basınca Form1 üzerindeki Text2 isimli TextBox'a setfocus yapar.
sayın foxman
ON KEY LABEL ALT+A Form1.Text2.SetFocus kodunun
formun activate methotuna da yazılması kanısındayım. (Aynı anda farklı bir form açık ve belki o formda Alt+A başka bir iş görüyordur)
Label'lar focus alamadiklarindan focus otomatikman tabindex siralamasinda focus alabilen sonraki ilk kontrole gidiyor
guzel taktik ayrica gorsellikte katar , bazi taborder ayarlamalari her kullanıcın aliskanligina uymuyor her kullanici farkli alanlara arda arda tab yada enter ile gecmek isteyebiliyor bu durumda standart ta zorlaniyor ama label caption lara shortcut vermek ile kullaniciya sadece gitmek istedigi yerin shortcut ini tuslamak kaliyor
Ben öncelikle yöntemi anlatmak istedim.
Tabiki birden fazla form varsa ve diğerlerinde de ALT+A kullanılıyorsa activate methodu veya ihtiyaca göre diğer benzer methodlara da konulması gerekir.
Selamlar.
Örneğin 5 adet textbox var ve tabindex'i 1,2,3,4,5
3 ncü textbox ta iken Valid'ine nasıl bir kod yazmalıyımki 2 nic textboxa geri
dönsün
Bunun Valid'e yazılabileceğinizden eminmisiniz.
Hata veriyor
valid'de;
RETURN this.parent.text2
yazarsanız belirtilen alana gidersiniz. (setfocus yazmayın)
valid'de;
RETURN this.parent.text2
yazarsanız belirtilen alana gidersiniz. (setfocus yazmayın)
bunu bilmiyordum. güzel...
foxpro dos'ta valid e valid -1 valid 1 vs.. yazarak yapılıyordu bu. bilmem vfp'de de oluyor mu ama gerek kalmamış.
return this.parent.text2
VFP9'da gecerli. Ondan oncesinde
return -1
Ben validi kullanmayi sevmiyorum ve lostfocusta Zeki'nin dedigi gibi tercihim:
this.parent.text2.setfocus
RETURN this.parent.text2
ile istediğim oldu. Teşekkürler.
Bağlantılı bir sorum daha olabilirmi acaba
aynı şeyi command buttonda nasıl yapabilirim.
Yani command buttona cliklediğimde cursor belirleyeceğim
textbox'a gitsin
Command butonunda valid'ine RETURN THISFORM.TExt2 gibi yazarsan gider. (CLICK de değil)
ok.
teşekkürler