• ベストアンサー

VB2005 DataGridでEnterキーでTabキーと同じように移動?

みなさん!こんにちは? 早速ですが、今趣味で簡単な開発をやっています。その中で、 DataGridでCellの移動(Tabキーの様に)をEnterキーで実行したいのですが、可能でしょうか? 可能でしたらその方法をご教授ください。 よろしくお願い致します。 環境はWindows2000、VB2005です。

質問者が選んだベストアンサー

  • ベストアンサー
  • unamana19
  • ベストアンサー率62% (56/89)
回答No.2

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 注意!上記ソースのスペースは表示の関係上、全角スペースを利用しています。

shen1730
質問者

お礼

有難う御座います。 早速試してみましたが、エラーっていうか認識してくれません。 「・・・・'Overrides' として宣言することができません」と。 初心者で申し訳ないですが、もっと詳しく説明して頂ければ 有難いです。例えば他の設定とか・・・ お忙しいところ申し訳ないです。

その他の回答 (3)

回答No.4
  • unamana19
  • ベストアンサー率62% (56/89)
回答No.3

まずは、DataGridを継承したクラスを作成しなければなりませんね。 Public Class ExDataGrid   Inherits System.Windows.Forms.DataGrid End Class このようなクラス(ExDataGrid)を作成して、ビルドすると、ツールボックスに 歯車アイコンで、"ExDataGrid"が追加されると思います。 これをフォームに配置すると、DataGridが配置されます。 オーバーライドは、このクラスの中で利用してください。 継承・オーバーライドなどは、一度調べておくといいと思います。

回答No.1

こんにちわ、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

shen1730
質問者

お礼

有難う御座います。 申し訳ないです。 この方法はすでに試してみましたが、 うまくいかなかったです。

関連するQ&A

専門家に質問してみよう