タイトル | : ありがとうございます。 |
記事No | : 10789 |
投稿日 | : 2012/05/02(Wed) 08:45 |
投稿者 | : もと |
入力チェックはDataGridView1でできており、エラー時はセルから遷移しないようにしています。 正常値のときに右へ移動でなく、2つ右へ移動したいのですが。 どのイベントに書いていいのかわからない状態です。 入力チェックはDataGridView1_CellValidatingイベントで記入しています。
Private Sub DataGridView1_CellValidating(ByVal sender As Object, _ ByVal e As DataGridViewCellValidatingEventArgs) _ Handles DataGridView1.CellValidating
Dim dgv As DataGridView = DirectCast(sender, DataGridView)
Dim test As String
'現在のセル位置を記憶しておく pvActive_Col = DataGridView1.CurrentCell.ColumnIndex PvActive_Row = DataGridView1.CurrentCell.RowIndex
'新しい行のセルでなく、セルの内容が変更されている時だけ検証する If e.RowIndex = dgv.NewRowIndex OrElse Not dgv.IsCurrentCellDirty Then Exit Sub End If
e.Cancel = False
'入力チェック Select Case dgv.Columns(e.ColumnIndex).Name
Case "SHCODE" If e.FormattedValue.ToString() ="123" Then MsgBox("入力した商品bヘエラーです。”) '入力した値をキャンセルして元に戻すには、次のようにする dgv.CancelEdit() 'キャンセルする e.Cancel = True Exit Sub Else '正常値なら右隣のセルに名称を表示 e.Cancel = False DataGridView1(pvActive_Col + 1, pvActive_Row).Value ="商品名" '******ここで名称の右へ遷移したいのです。 End If
End Select
Exit Sub
End Sub
|