2009-05-06 16 views
1

のタブキーでナビゲートするときに、フォーカスされたセルを手動で管理するDataGridViewがあります。たとえば、最後の行の最初のセルがDataGridView内でナビゲートできる最後のセルであるときは、これを押してください。Tab次のフォーカス可能なコントロール(ボタン)にフォーカスを移動します。'Tab'キーを押したときに次のコントロールにフォーカスする

SendKeys.Send(「{TAB}」は)動作しません - 焦点は

答えて

2

あなたはSelectNextControl方法を試してみましたが、最後の行の2番目のセルに行くのだろうか?あなたがTrueにStandardTabプロパティを設定した場合

0
Control nextControl = this.dataGridView1.Parent.GetNextControl(this.dataGridView1, true); 
Control prevControl = this.dataGridView1.Parent.GetNextControl(this.dataGridView1, false); 
6

は、Tabキーの動作は、フォーム上の次のコントロールに移動するには次のグリッドセルに移動するから変更されます。これはあなたが望むものかもしれません。

グリッドセル/列/行にフォーカスが当てられるようにする場合は、コード内でProcessDialogKeyProcessDataGridViewKeyイベントを処理できます。

+2

これは受け入れられた回答である必要がありますように見えます... – NobodysNightmare

1

Rune Grimstad氏によると、デフォルトで提供されているタブの動作やStandardTab以外のタブの動作が必要な場合は、独自のタブ動作を実装する必要があります。

DataGridViewから継承する新しいクラスを作成します。

protected override bool ProcessDialogKey(Keys keyData) 
{ 
    case Keys.Tab | Keys.Shift: 
     // implement your logic here. 
     break; 
    case Keys.Tab: 
     // implement your logic here. 
     break; 
} 
0

DataGridView's StandardTab propertyを使用できます。

dataGridView1.StandardTab = true; 

ユーザーがCTRL +TAB組み合わせで非StandardTabでこれを行うことに注意してください、StandardTabはこの動作を反転させます。

関連する問題