VB.NET DataGridView のカーソル遷移で、ReadOnly = True のセルをスキップする

DataGridView のカーソルは基本的にタブキーで遷移させることができ、左から右に動く。
そのときに、ReadOnly = True のセルだけスキップする(フォーカスを当てない)処理が必要になったので、サンプルコードをメモ。
DataGridView の CellEnter イベントを補足することによって実現する。
単純に、ReadOnly = True のセルにフォーカスが当たったら Tab キーを送る、というやり方。

※下記の方法だと、マウスクリックした場合でもフォーカスが当たらなくなってしまうが、仕様ということで。


Private Sub SampleDataGridView_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles SampleDataGridView.CellEnter
  Dim dgv As DataGridView = CType(sender, DataGridView)
  Dim columnIndex As Integer = e.ColumnIndex
  
  'ReadOnlyのカラムはフォーカスせず次のカラムへ飛ばす
  If dgv.Columns(columnIndex).ReadOnly = True Then
    SendKeys.Send("{Tab}")
    
  End If
  
End Sub


posted by へっぽ at 17:48 | TrackBack(0) | VB.NET | このブログの読者になる | 更新情報をチェックする

この記事へのトラックバック