12 Haziran 2012 Salı

C# ta Butona Kısayol Tuşu Atamak(Keydown event)

C# ta Butonlarımıza klavye kısayolları ekleyebiliriz. Örneğin form üzerinde kaydetme işlemimizi gerçekleştiren BtnKaydet isimli bir butonumuz olsun ve bu butonun kısayoluda F5 tuşu olsun.
ilk olarak işe formumuzun basılan tuşları yakalayabilmesi için Properties kısmından Keypreview özelliğini true yapalım. daha sonra formumuzun keydown olayında aşağıdaki kodu yazalım.

if(e.KeyCode==Keys.F5)
{
 BtnKaydet.PerformClick();
}

bu kod çalıştırıldığında ve F5 tuşuna basıldığın da BtnKaydet Butonumuz için yazdığımız kod çalşıtırılacaktır.

iyi çalışmalar.

9 yorum:

  1. kardeşim bilgin için çok teşekkürler gösterdigin işime yaradı yanlız aynı bu konu için sorum olacak
    ///bu işlev form üzerinde çalışıyor fakat sorum şu üzerinde degilken nasıl çalışır
    ///simgeDurumunaKucultmede çalışmıyor
    ///arka planda çalışmıyor

    private void form1_Keydown(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.H)
    {
    MessageBox.Show("H tuşuna basıldı");
    }
    }


    /// bu işlevin formun alta olmasıyla yani minimenized simgeDurumunaKucultmede yada
    /// arka planda kalması
    /// ilede çalışmasını nasıl saglarım... her koşulda o tuşa bastıgımda işlev gerçekleşşin

    YanıtlaSil
    Yanıtlar
    1. konudan faydalanmanıza sevindim. soruduğunuz konu için şunu söyleyebilirim. keydown olayı bilgisayarınızda aktif pencere içerisin basılan tuşları yakalıyor. yani pencerede o tuşun karşılığı varsa devreye girer. siz ekranı minimize ettiğinizde artık aktif pencereniz örn. masaüstü olur. bu durum nasıl aşılır bir çözüm yolu var mıdır bu konuda bilgim yok. bir çözüme ulaştığınız da burda paylaşırsanız sevinirim. iyi çalışmalar

      Sil
  2. Yanıtlar
    1. form seçiliyken event penceresine girerek oradan keydown eventını oluşturduktan sonra kodu içerisine yazabilirsiniz.

      Sil
  3. herkes vb de göstermiş cs gösteren kimse yok

    YanıtlaSil
  4. abicim ben hesap makinesi yaptım ama - + tuşlarını ekleyemiyorum ismi nedir değerli hocam söyler misin?

    YanıtlaSil
    Yanıtlar
    1. if (e.KeyCode == Keys.Add) // toplama için
      if (e.KeyCode == Keys.Subtract) çıkarma için

      Ayrıca yine formun keydown eventı içerine aşağıdaki kodu yazarak klavyeden bastığın tuşun adını mesajda görebilirsin.

      MessageBox.Show(e.KeyCode.ToString())

      Sil