.NET Compact Framework 3.5 にて、DataGrid を利用しています。(VB.NET)
DataGrid上にフォーカスがあるとき、↑キーや↓キーの制御を自前で制御したいので無効にしたいのですが、 DataGrid の KeyDown イベントで e.Handled = True にしても効果が無く困っています。
KeyDown イベントで Up/Down のKeyCodeを捕捉はできるのですが、捕捉したときには既に勝手にセルを移動してしまっているようなのです。
やりたい事としては、DataGridの先頭行にフォーカスがあるときと、DataGridの最終行にフォーカスがあるときに、他のコントロールにフォーカスを移動させたいため、自前で処理したいのです。
解決方法をご存じの方、よろしくお願いいたします。以下、効果のなかったコード
Private Sub DataGrid1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGrid1.KeyDown Select Case e.KeyCode Case Keys.Up e.Handled = True '先頭行の場合TextBox1にフォーカス移動 If DataGrid1.CurrentCell.RowNumber = 0 Then TextBox1.Focus() End If Case Keys.Down e.Handled = True '3行目の場合TextBox2にフォーカス移動 If DataGrid1.CurrentCell.RowNumber = 2 Then TextBox2.Focus() End If End Select End Sub