明細コントロールに対するEnterキー押下時のカーソル移動スキップ

ページ名:9

Grid_DoCheckCellMoveInでスキップ条件を満たすか判定し、条件を満たす場合はセル行とセル列に移動先を設定する。

そうすれば、Grid_DoCheckCellMoveOutで設定したセル行とセル列に移動してくれる…はず。

 

■例 フジクラ様 プロジェクト発注処理(A50050_00 EntryForm.vb)■

Private Function Grid_DoCheckCellMoveIn_数量() As Boolean

        Dim colIndex As Integer = detail.GetColumnIndex(退避情報型.明細項目型.数量.ToString)

        If _myコントロール情報.数量・単価入力区分 = プロジェクト入力処理定義型.数量・単価入力区分型.行わない Then
            GoTo Grid_DoCheckCellMoveIn_数量_Err
        End If

        If Is要素コード以降入力可否() = False Then
            GoTo Grid_DoCheckCellMoveIn_数量_Err
        End If


        '作業工程コードがタイトル用工種コードの場合
        If CStr(_退避情報.明細部項目(_toCell.RowIndex, 退避情報型.明細項目型.作業工程コード)) = CStr(_退避情報.フジクラコントロール項目("ZAICA01045")).TrimEnd Then
            GoTo Grid_DoCheckCellMoveIn_数量_Err
        End If

        Return True


Grid_DoCheckCellMoveIn_数量_Err:

        If Isグリッド内他行移動(_toCell, _toCell) = True Then
            Return False
        End If

        If Isグリッド内移動方向(_fromCell, _toCell) = CheckMethodArgs.移動方向型.後へ Then
            '作業工程コードがタイトル用工種コードの場合
            If CStr(_退避情報.明細部項目(_toCell.RowIndex, 退避情報型.明細項目型.作業工程コード)) = CStr(_退避情報.フジクラコントロール項目("ZAICA01045")).TrimEnd Then
                SetNextCellFocus次行項目()
            Else
                _toCell.colIndex = detail.GetColumnIndex(退避情報型.明細項目型.金額.ToString)
                _fromCell.colIndex = colIndex
            End If  
        Else
            _toCell.colIndex = detail.GetColumnIndex(退避情報型.明細項目型.作業工程コード.ToString)
            _fromCell.colIndex = colIndex
        End If

        Return False

    End Function

 

    ''' <summary>
    ''' 次行先頭項目へカーソルを移動する(
    ''' </summary>
    ''' <remarks>「Grid_DoCheckCellMoveIn~」メソッドからの使用を想定</remarks>
    Private Sub SetNextCellFocus次行項目()

        If _toCell.RowIndex + 1 < _limitMaxRow Then
            '次行先頭セルへ
            _toCell.RowIndex += 1
            _toCell.colIndex = detail.GetColumnIndex(GetDetailTopColumnName())
        Else
            'フッター部へ
            _zeroEnd = True
        End If

        '現在行から抜ける為、行チェックを行う
        If Grid_DoCheckLineMoveOut() = False Then
            _zeroEnd = False
            _toCell.RowIndex = _changeCell.RowIndex
            _toCell.colIndex = _changeCell.colIndex
            Exit Sub
        End If

    End Sub

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧