北の窓から(芦田っち)

PC関連と私的雑感のブログ。
2015年7月10日、カッコ内に名前を加えました。昔の友だちに気付いてほしくて・・・

【VB.NET】 DataGridView -- [Enter]キーで[Tab]キーの動作を行う:フォーカスの横移動

2012-11-13 11:50:02 | 北窓舎
DataGridView(TextBox 列)で[Enter]を押すとフォーカスは下に移動します。
[Enter]キーでフォーカスを右(または左)に移動させたいこともあります。

[Enter]押下で、[Tab]キーとか[→]キーと同じように、
フォーカスを横に移動させる簡単な方法をご紹介します。

DataGridView での KeyDown イベントを使いました。
実際に押された[Enter]キーは無効にして
[Tab]キーが押されたことにする、だけで出来ました。

サンプル・コードは以下のとおりです。
(サンプルでは表示上の問題から、半角ではなく全角スペースでインデントしています。
 全角スペースは半角スペースに置き換えてください)

【サンプル・コード】
 ' --- DataGridView1 での KeyDown イベントハンドラ:[Enter]キーで[Tab]キー同様の動きをさせる
 Private Sub DataGridView1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
   If e.KeyCode = Keys.Enter Then  ' --- [Enter]が押されたら
     e.Handled = True       ' --- 実際に押された[Enter]は無効にして
     SendKeys.Send("{TAB}")    ' --- [Tab] が押されたことにする
   End If
 End Sub

なお、[Shift]を押しながら[Enter]すると、ちゃんと左に移動してくれました。

Web にはコード量の多い方法が幾つか紹介されていましたが、
私の環境ではこれが一番簡単にできました。
参考になれば幸いです。




ここをクリックして、北窓舎のサイトにもお立ち寄りください・・・



【追記】
入力中でないセルのフォーカス移動については上記でよさそうですが、
入力し、確定して[Enter]すると下にフォーカス移動しました。
これをカバーする方法を思いついたら、報告します。
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Task Clock バージョンアップ... | トップ | キーボードのチャタリング »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

北窓舎」カテゴリの最新記事