|
Question : Skip a cell on TAB in datagridview
|
|
Hi
I need to skip a cell, that is read only, when the user presses the Tab key. I have tried the following code to skip over column 2
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
Select Case keyData Case Keys.Tab If grdHSE.CurrentCell.ColumnIndex = 1 Then grdHSE.CurrentCell = grdHSE(3, grdHSE.CurrentCell.RowIndex) End If End Select End Function
but it skips to column 4 not 3.
All help much appreciated.
Best Regards Alun Gwyther
|
|
Answer : Skip a cell on TAB in datagridview
|
|
What I think is happening here is that the CurrentCell is being changed to grdHSE(3, grdHSE.CurrentCell.RowIndex) BEFORE the Tab keystroke is firing, so that when it does fire, it is then moving the focus to the next cell, which is grdHSE(4, grdHSE.CurrentCell.RowIndex). What you need to do is consume the Tab keystroke, so that it doesn't get processed after you have set the cell you want. LIke this
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean Debug.WriteLine(grdHSE.CurrentCell.RowIndex) Select Case keyData Case Keys.Tab If grdHSE.CurrentCell.ColumnIndex = 1 Then grdHSE.CurrentCell = grdHSE(3, grdHSE.CurrentCell.RowIndex) Return True '<<< NOTE NEW LINE End If End Select End Function
Roger
|
|
|
|