ben

OMÜ , Bilgisayar Mühendisliği, 13'

22 Ocak 2013 Salı

wpf de Tab Tuşunu etkinleştirme

    Formlardaki controllere bazen tab tusu ıle gezınmek istediğimizde bunu C# ta Sendkeys.Send({TAB}) komutuyla tabindexi küçük olandan büyük olana doğru sırayla gezınebilmeyi sağlar. BUrda onemli olan tab tusuna basmadan gezinebilmek. Örneğin textboxa veri girip enter'a bastığınızda tabindexi o textbox'ın tab indexinden buyuk olan kontrolü seçili hale getirir. Anket formlarında bu işlem oldukça kolaylık sağlar.
  Gelelim WPF' e, malesef ki burda sendkeys gibi hazır bi fonksiyonumuz yok. wpf te tus takımını kontrol edebilmek için iki yontem var.

1.Yöntem
Bu yöntem tus takımı bayraklarının kodlarına göre tab tusunu ayarladıktan  sonra keybd_event komutuyla kullanılabilir.

 Örnek komutlar;
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
public const byte VK_TAB = 0x09;

Tab tuşunu etkinleştirmek istediğimiz fonksiyon içerisine ise;

keybd_event(VK_TAB, 0x45, 0, 0);

2.Yöntem
WPF için yapılmış hazır bir kütüphane mevcut: InputSimulator.dll Bu kütüphaneyi  projemize referans olarak eklediğimizde aşağıdaki komutları kullanarak tab tusunu etkinleştirebiliriz.

WindowsInput.InputSimulator.SimulateKeyPress(VirtualKeyCode.TAB);


 
Bu kütüphaneyi kullanarak sanal klavye yapabilmek mümkün :)

Hiç yorum yok: