Merhaba
WinForm uygulamalarınız için Keypress ve Keydown Event method içeriği yazmaktan sıkıldıysanız size bir ipucum olacak. Bir senaryo ile gerçekleyelim hemen.,
1 listbox var , listedeki bir eleman shift + X ile basılıp double click yapılırsa silinecek. Listbox’un doubleclick ve Keydown methodlarını aynı anda kullanmak biraz zahmetli olsa da genelde tercih edilen yöntem bu oluyor hızlıca. Daha hızlısı ve pratiği nedir ?
WPF için geliştilen PresentationCore içindeki , Keyboard sınıfı. (PresentationCore,WindowsBase assembly’lerini referans vermeniz gerekiyor)
1 2 3 4 5 6 7 |
private void listBox1_DoubleClick(object sender, EventArgs e) { if (listBox1.SelectedItem != null && !Keyboard.IsKeyDown(System.Windows.Input.Key.LeftShift)) { // listbox1.remove(listbox.selecteditem) } } |
Yukarıda yaptığımız şey MOUSE içinde düşünebiliriz. Sağ tuşa basarken CTRL+ALT basılımıydı gibi bir kod yazalım
1 2 3 4 5 6 7 8 |
private void listBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if (e.KeyCode == Keys.ControlKey && e.KeyCode==Keys.Alt) { if (Control.MouseButtons == MouseButtons.Left) Console.WriteLine( "yakaladım" ); } } |
Winform uygulamasında WPF in Mouse sınıfını direkt kullandığımızda çalışmadığını ne yazık ki tespit ettim. Winform uygulamanızda direkt olarak kendi üzerinde bulununa Control.MouseButtons ile çalışabilirsiniz.
Umarım faydalı olmuştur. Sorularınızı yorum kısmından gönderebilirsiniz.
İyi günler dilerim.
GÜNCEL konular olması çok faydalı olmuş.