チェックボックスを新規追加する時のフォーカス移動の注意

ページ名:11

チェックボックスを実行ボタンのひとつ前に追加すると、フォーカス移動が正しく行われない。

その場合はダミー項目をチェックボックスと実行ボタンの間に配置して回避する必要がある。

→チェックボックスのプロパティのCausesValidationをTrueに変えてあげれば、通常のコントロール同様に

 カーソルIN/OUTのタイミングでフレームワークに沿った挙動をとるようになる

 

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

 


    Private Function DoCheckControlMoveIn_dummy1(ByVal args As CheckMethodArgs) As Boolean
        'チェックボックス⇔実行ボタン フォーカス移動用
        '※実行ボタンから↑、Shift+Tagキー押下時のチェックボックスコントロールへのフォーカス移動、
        '  または、チェックボックス以外のコントロールからの実行ボタンからEnter、Tab、↓キー押下時の実行ボタンへのフォーカス移動
        '  (チェックボックスコントロールからの実行ボタンからEnter、Tab、↓キー押下時の実行ボタンへのフォーカス移動は、
        '   ここで制御できないため、dummy1のEnterイベントで別途制御

        Dim nextControl As Control

        If args.移動方向 = CheckMethodArgs.移動方向型.後へ Then

            nextControl = _focusSwitcher.GetNextControl(dummy1)
            Return DoCheckControlMoveIn_ErrorFocusMove(args, nextControl)

        ElseIf args.移動方向 = CheckMethodArgs.移動方向型.前へ Then

            nextControl = _focusSwitcher.GetPrevControl(dummy1)
            Return DoCheckControlMoveIn_ErrorFocusMove(args, nextControl)

        End If

        Return True

    End Function

 


    Private Sub dummy1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dummy1.Enter

        'チェックボックスコントロール(asHenkobun、sendMail)からEnterまたはTabキー押下で移動した場合、
        'DoCheckControlMoveIn_dummy1が実行しないため、強制的に更新ボタンへカーソルを移動させる
        execute.Focus()

    End Sub

 

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

コメント

返信元返信をやめる

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

最新を表示する

NG表示方式

NGID一覧