2011-07-05 16 views
5

Sadece .NET kullanarak bir .NET DataGridView sütununu sıralamak mümkün mü?.NET DataGridView sütununu yalnızca klavye kullanarak sıralamak mümkün mü?

Bir SelectionMode özelliği olduğunu anlıyorum, ancak bunu değiştirmek yalnızca Shift + Space, bir satır veya sütun kullanarak seçim yapmamı sağlar, ancak bu, fareyle üstbilgiye tıklamak ve buna neden olmakla aynı etkiye sahip değildir. Bir çeşit.

Sormamın nedeni, erişilebilirlik konularında çalışıyorum ve fareye güvenmekten kaçınmaktır.

Yardımlarınız için teşekkür ederiz.

+1

"kutunun dışında", "kod gerekmiyor" mu demek istiyorsun? –

+0

Evet, belirsizlik için özür dilerim, bunu bilmediğim bir kod olmadan yapmanın bir yolu olduğunu umuyordum. – Eric

+0

Orada olduğunu sanmıyorum. İyi haber, çok fazla kod almaması gerektiğidir. =) – ZeroDivide

cevap

4

Yapmanız gereken ilk şey, form özelliklerinizde KeyPreview özelliğini True olarak belirlemektir.

public class Form1{ 
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown); 

private void Form1_KeyDown(object sender, KeyEventArgs e) 
    { 
     //sort column 0 descending on a 'D' press 
     if (e.KeyCode == Keys.D) 
      dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Descending); 

     //sort column 0 Ascending on a 'U' press 
     if (e.KeyCode == Keys.U) 
      dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending); 
    } 
} 
1

Bir şey kaçırıyor olabilirim, ancak istediğiniz tuş birleşimini aldığınız anda Sıralama yöntemini arayın.

0

i sütun başlıkları hiç odağı olsun bilmiyorum:

Sonra olaylarda sen O zaman bu gibi bazı kod şey eklemek KeyDown() olay

için bir olay işleyicisi eklemek gerekir (ctrl + tab/etc?) ancak klavyenizin bir bağlam menüsü düğmesi varsa, çalışabilir. ama başlıkları hiç klavye odaklanmadığını sanmıyorum.

Aksi takdirde, standart erişilebilirlik özelliklerini kullanarak bunu yapmak için yollar olabilir?

İlgili konular