2011-07-05 11 views
5

キーボードだけを使用して.NET DataGridView列を並べ替えることは可能ですか?キーボードのみを使用して.NET DataGridView列を並べ替えることはできますか?

SelectionModeプロパティがあることを理解していますが、これを変更するとShift + Spaceキーを使用して行全体または列全体を選択できるだけですが、マウスでヘッダーをクリックしてソート。

私がアクセシビリティ上の問題に取り組んでおり、マウスに頼るのを避けたいからです。

ありがとうございます。

+1

「すぐに使える」とは、「コード不要」という意味ですか? –

+0

はい、曖昧さをおかけして申し訳ありませんが、私が知らなかったコードなしでこれを行う方法があることを期待していました。 – Eric

+0

私はそこにいるとは思わない。良いニュースは、それはあまりコードを取るべきではないということです。 =) – ZeroDivide

答えて

4

最初に行う必要があるのは、フォームプロパティでというプロパティをKeyPreviewに設定することです。私は列ヘッダーが今までフォーカスを取得することを知らない

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

私は何か不足している可能性がありますが、希望するキーの組み合わせを受け取った瞬間にSortメソッドを呼び出します。

0

は、その後、あなたがKeyDown()イベント

のイベントハンドラを追加する必要があるイベントに続いて、このようないくつかのコードの何かを追加します(ctrl + tab/etc?)が可能で、キーボードにコンテキストメニューボタンがある場合は、となります。しかし、私はヘッダーがキーボードフォーカスを得たとは思わない。

それ以外の場合、標準のアクセシビリティ機能を使用する方法がありますか?

関連する問題