- ベストアンサー
VB2005 DataGridでEnterキーでTabキーと同じように移動?
みなさん!こんにちは? 早速ですが、今趣味で簡単な開発をやっています。その中で、 DataGridでCellの移動(Tabキーの様に)をEnterキーで実行したいのですが、可能でしょうか? 可能でしたらその方法をご教授ください。 よろしくお願い致します。 環境はWindows2000、VB2005です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
VB2005でしたら、DataGridの後継のDataGridViewを利用した方がいいかと思います。 まぁ、動作が遅いのが難点ですが・・・ EnterでTabと同様の処理をしたいのなら、ProcessCmdKeyをオーバーライドして、 Enterキーなら、Tabの動作を行うようにすればいいかと思います。 Protected Overrides Function ProcessCmdKey(ByRef msg As ... Dim key As Keys = keyData And Keys.KeyCode If key = Keys.Enter Then Return Me.ProcessTabKey(keyData) End If Return MyBase.ProcessCmdKey(msg, keyData) End Function 注意!上記ソースのスペースは表示の関係上、全角スペースを利用しています。
その他の回答 (3)
- sendaitaro
- ベストアンサー率25% (6/24)
- unamana19
- ベストアンサー率62% (56/89)
まずは、DataGridを継承したクラスを作成しなければなりませんね。 Public Class ExDataGrid Inherits System.Windows.Forms.DataGrid End Class このようなクラス(ExDataGrid)を作成して、ビルドすると、ツールボックスに 歯車アイコンで、"ExDataGrid"が追加されると思います。 これをフォームに配置すると、DataGridが配置されます。 オーバーライドは、このクラスの中で利用してください。 継承・オーバーライドなどは、一度調べておくといいと思います。
- sendaitaro
- ベストアンサー率25% (6/24)
こんにちわ、DataGridはほとんど使わないのですが・・・ こんな感じでは? Private Sub DataGridView1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown If e.KeyCode = Keys.Enter Then ' 'GridのFocusの移動とか・・・ ' End If End Sub
お礼
有難う御座います。 申し訳ないです。 この方法はすでに試してみましたが、 うまくいかなかったです。
お礼
有難う御座います。 早速試してみましたが、エラーっていうか認識してくれません。 「・・・・'Overrides' として宣言することができません」と。 初心者で申し訳ないですが、もっと詳しく説明して頂ければ 有難いです。例えば他の設定とか・・・ お忙しいところ申し訳ないです。