リストビューでスペースキーを受け付けないようにするには

解決


  2006-09-29 19:07:08  No: 96790

VB.NET    Windows XP
この掲示板を参考にさせていただきながら、こつこつと作成しています。
リストビューにデータを表示して、そのいずれかを選択したらその行の
バックカラーを黄色に変更して随時入力されるデータを基に行のデータを
リアルタイムで書き換えています。キーダウンイベントで必要なキーのみを
受け付けるようにしてその他のキーは受け付けないようにしているのですが
スペースキーを押したら当該行の色が選択された状態(濃い青)に変わって
しまいます。動作そのものには影響がありませんがせっかく指定色に変更
したものが濃い青に変わってしまうので面白くありません。
どなたかよい解決法をご存知であれば御教授して下さい。

下記にキーダウンイベントを貼り付けています。
    '****************************************************************************
    '
    '           キーが押されたか
    '
    '           選択時はESC(受注№の直接入力)、F2(終了)、F8(良不良)、F10(選択)
    '           準備・停止・非作業時はF2(終了)、F4(非作業)、F6(オーダーチェンジ)、F8(良不良)
    '           稼動時は全てのキーを受け付けない
    '           終了時はF2(終了)、F8(良不良)
    '
    '****************************************************************************

    Private Sub Form_KeyDown(ByVal sender As Object, _
                ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

        Dim i, a As Integer
        Dim Ryfry As New Ryo_inp                                        '良不良入力フォームの宣言

        Select Case e.KeyCode
            Case Keys.Home, Keys.End, Keys.PageDown, Keys.PageUp, Keys.Space
                e.Handled = True                                        'ロールアップキー等を無効にする
        End Select

        Select Case Mode                                                'モードで分岐
            Case M_sen                                                  '選択中
                Select Case e.KeyCode
                    Case Keys.Escape                                    'ESCキー
                        Jinput()                                        '受注№の入力
                    Case Keys.F2                                        'F2キー(終了)
                        Owari()                                         '作業終了
                    Case Keys.F8                                        'F8キー(良不良)
                        Ryfry.Show()
                    Case Keys.F10                                       'F10キー
                        Kaisi()                                         '作業開始
                End Select

            Case M_kad                                                  '稼動中
                Select Case e.KeyCode
                    Case Keys.Down, Keys.Up, Keys.Left, Keys.Right
                        e.Handled = True                                '上下左右キーを無効にする
                End Select

            Case M_jun, M_tei, M_his                                    '準備中、停止中、非作業中
                Select Case e.KeyCode
                    Case Keys.Down, Keys.Up, Keys.Left, Keys.Right
                        e.Handled = True                                '上下左右キーを無効にする
                    Case Keys.F2                                        'F2キー(終了)
                        Owari()
                    Case Keys.F4                                        'F4キー(非作業)
                        Hisagyo()
                    Case Keys.F8                                        'F8キー(良不良)
                        Ryfry.Show()
                    Case Keys.F6                                        'F6キー(オーダーチェンジ)
                        Cheng()
                End Select

            Case M_end                                                  '終了モード?
                Select Case e.KeyCode
                    Case Keys.F2                                        'F2キー(終了)
                        Owari()
                    Case Keys.F8                                        'F8キー(良不良)
                        Ryfry.Show()
                End Select

        End Select

    End Sub


  2006-09-30 00:50:41  No: 96791

KeyPressイベントで自己解決いたしました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加